2015-05-25 7 views
3

У меня есть четыре переключателя.Как уменьшить размер переключаемой кнопки?

источник XML

<RadioButton 
    android:id="@+id/fragBtn1" 
    android:layout_width="0dp" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:background="@drawable/btn_bg_selector" 
    android:button="@null" 
    android:drawableTop="@drawable/btn_img_selector" /> 

btn_img_selector

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/selected_btn" android:gravity="center" android:state_checked="true"/> 
    <item android:drawable="@drawable/nonselected_btn" android:gravity="center"/> 
</selector> 

btn_bg_selector

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@color/btnPressed" android:state_pressed="true"/> 
    <item android:drawable="@color/btnNonPressed"/> 
</selector> 

Но кнопка изображение слишком велико.
Я хочу уменьшить размер изображения кнопки только. (Не уменьшать размер кнопки)
Например, я хочу масштабировать размер изображения кнопки 30px * 30px.
Возможно ли это?

+0

Это может помочь вам. http://stackoverflow.com/questions/5547412/how-to-decrease-radio-button-size-in-android – Karthikeyan

+0

Я не хочу размер кнопки уменьшения! только размер изображения кнопки ... –

+0

Я нахожу это решение, см. мой ответ здесь [https://stackoverflow.com/a/44310577/6112256](https://stackoverflow.com/a/44310577/6112256) –

ответ

0

Я не могу найти решение.
Но я нахожу другое решение.

источник XML

<RadioButton 
    android:id="@+id/fragBtn1" 
    android:layout_width="0dp" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:background="@drawable/btn_bg_selector" 
    android:button="@null" 
    android:drawableLeft="@drawable/btn_selector" /> 

MyActivity.java

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 

    BitmapDrawable bd = (BitmapDrawable) this.getResources().getDrawable(R.drawable.mybtn); 

    int iconWidth = bd.getBitmap().getWidth(); 
    int leftPadding = (btn.getWidth()/2) - (iconWidth/2); 

    btn.setPadding(leftPadding, 0, 0, 0); 
} 
0

Если вы хотите сделать это правильно, вы должны соответствующим образом изменить размер своих активов. В противном случае я не уверен, как уменьшить размер изображения кнопки без уменьшения самой кнопки

0

Наконец нашел правильное решение:

Шаг 1: Используйте свой @ вытяжке/selected_btn или @ drawable/nonselected_btn как INSET DRAWABLE.

Шаг 2: Обеспечьте заполнение как желаемое.

Шаг 3: Yuhuuuu !! Вы уменьшили размер изображения переключателя.

1

Sclae кнопку

<RadioButton 
     android:scaleX="0.75" 
     android:scaleY="0.75" /> 
+0

So просто и отлично работает! – manusoft