将填充设置为单选按钮图标

时间:2013-09-02 21:49:32

标签: android radio-button

我为单选按钮设置了自定义图标。我已经创建了它的png,因此它正确地集中在Android 4上。“居中”我的意思是关于其他具有标准图标的单选按钮。但是,自定义图标在Android 2.3上显示偏离中心。请看图片。带有修改图标的单选按钮是第二个。

如何将左侧填充设置为可绘制的图标(或其他任何解决方案),以便相对于标准单选按钮将其水平居中?

enter image description here

代码的相关部分如下。我将单选按钮添加到Java代码中的radioGroup,而不是XML中。 radioGroup已初始化。 radioButton是一个包含单选按钮的数组。 i是一个循环变量(我省略了循环)。带有自定义图标的单选按钮是满足if的单选按钮。那些不满足该条件的按钮会留下标准图标。

    radioButton[i].setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, height_pixels));
    radioButton[i].setText(newNameArray[i]);
    radioButton[i].setTextColor(MainActivity.colorTextNormal);
    radioButton[i].setOnClickListener(new Button.OnClickListener() {
        public void onClick(View view) {search(false);}
    });
    if (!containsSearchTermMark(baseStringArray[i])) {
        TypedValue typedValue = new TypedValue();
        getTheme().resolveAttribute(R.attr.radio_nosearch_icon, typedValue, true); // Resolve the XML: get the drawable it represents 
        radioButton[i].setButtonDrawable(typedValue.resourceId); // 32 dp icon, so that it takes up the same space as the original radio icon
    }
    radioGroup.addView(radioButton[i]);

2 个答案:

答案 0 :(得分:0)

您可以在xml中使用自定义drawable,如下所示

android:button="@drawable/radio_button_custom"

或发布您的xml布局以更好地理解它。

编辑:

我现在正在工作,但会尝试查看代码中的错误。到时候,你可以看看这个answer,你可能会有所了解。

答案 1 :(得分:0)

我最终重新绘制了所有图标(这是我想要避免的)。

如果有人感兴趣,适当大小的单选按钮图标如下所示。

  • 对于Android 4.x:MDPI为32x32像素,HDPI为48x48,XHDPI为64x64。
  • 对于Android 2.3:38x48用于MDPI,56x72用于HDPI,76x96用于XHDPI。

这些是Eclipse的Android“res”文件夹中单选按钮图标的大小。