【问题标题】:Set padding to radio button icon将填充设置为单选按钮图标
【发布时间】:2013-09-06 00:48:53
【问题描述】:

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

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

代码的相关部分如下。我将单选按钮添加到 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]);

【问题讨论】:

    标签: android radio-button


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      您可以在 xml 中使用您的自定义可绘制对象,如下所示

      android:button="@drawable/radio_button_custom"
      

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

      编辑:

      我现在正在工作,但会尝试查看您的代码有什么问题。到时候,你可以看看这个answer,你可能会有所了解。

      【讨论】:

      • 检查我答案中的编辑部分。
      • 我已经通过重绘图标解决了这个问题(无论如何我都必须这样做)。 Android 2.3 似乎需要奇怪的单选按钮图标大小值(见我的回答)。感谢您的宝贵时间!
      猜你喜欢
      • 2021-04-08
      • 1970-01-01
      • 2013-05-01
      • 2021-12-24
      • 2011-12-25
      • 2020-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多