2016-04-15 70 views
1

美好的一天,我有點困惑和遺憾,如果它是公佈的,但我找不到正確的答案。我的任務是創建帶有自定義繪圖的小部件(RadioButton,RatingBar)+使它們高品質,而不是模糊。自定義小部件中的可繪製分辨率

這裏是我的問題和我試過的。因此,舉例來說,我有自定義繪製的單選按鈕:

radioButtonArray[i].setButtonDrawable(R.drawable.radio_button_selector); 

radio_button_selector:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/rb_unchecked" android:state_checked="false"/> 
<item android:drawable="@drawable/rb_checked" android:state_checked="true"/> 
</selector> 

現在的問題是在可繪製的質量。如果我將在不同的px大小的不同文件夾(hdpi,mdpi,xhdpi ...)中添加rb_unchecked.pngrb_checked.png,那麼我的單選按鈕在某些手機屏幕上會很大。好的,接下來我嘗試的是以編程方式設置我的單選按鈕的寬度和高度,但發現它很難並且效率不高(例如,我與RatingBar具有相同的情況,我無法找到如何設置自定義寬度和高度的物品)。我嘗試過的另一個解決方案是將rb_unchecked.pngrb_checked.png僅添加到尺寸爲18px * 18px的drawable文件夾中,並且一方面它解決了問題,尺寸正確,但單選按鈕現在是低分辨率和模糊。

我的quastion是我做錯了什麼?我預計在具有不同dp android的設備上會在hdpi/xhdpi文件夾中獲取特定圖像,並將其縮放到特定大小,但不是來自特定文件夾的此圖像只是wrap_content |作物在我的自定義小部件?

回答

0

我發現,爲什麼我的單選按鈕,繪製了enourmous大的原因,我用以下佈局:

<RadioButton 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="30dp" 
android:layout_height="30dp" 
android:button="@drawable/radio_button_selector"/> 

正確的形式給出:

<RadioButton 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="30dp" 
android:layout_height="30dp" 
android:background="@drawable/radio_button_selector" 
android:button="@android:color/transparent"/> 
相關問題