2016-04-15 72 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"/> 
相关问题