7

好的,我正在尝试创建一个名为CheckedRelativeLayout.

它的目的与 a 相同CheckedTextView,以便能够在您要选择的项目列表或 a 中使用它Spinner

现在一切正常,我扩展RelativeLayout并实现了Checkable接口。

但是,我遇到了一个非常简单的问题:我在哪里可以找到DrawableCheckedTextView使用RadioButton它?

我查看了两者的源代码,它们似乎使用com.android.internal.R. 嗯……这是内部的东西。所以我无法访问它。

有什么方法可以获取这些 Drawable 或以某种方式解决问题?

4

3 回答 3

13

查看 SDK 文件夹 /platforms/android-2.0/data/res/ 您可以通过 android.R.drawable (如果是公共的)访问它们,或者需要将它们作为可绘制对象复制到您的项目中

于 2010-05-04T18:44:19.870 回答
5

为了完整起见:

这里有一些代码片段显示了我如何使用上述接受的答案。

 //Image Setup (Once when creating this view)
 ImageView indicator = (ImageView) findViewById(R.id.RadioStatusImage);
 indicator.setImageDrawable(getResources().getDrawable(android.R.drawable.btn_radio));

 //State Change (In some other method)
  android.R.attr.state_checked
  if (isChecked)
  {
     indicator.setImageState(android.R.attr.state_checked, false);
  }
  else
  {
     indicator.setImageState(View.ENABLED_STATE_SET, false);
  }
  invalidate();
于 2010-05-04T19:32:36.977 回答
2

要使用新的默认动画单选按钮可绘制,正确答案在@sidon 的评论中:

?android:attr/listChoiceIndicatorSingle

在相对于文本的自定义位置使用它:

<RadioButton
    ...
    android:gravity="center_horizontal|bottom"
    android:drawableTop="?android:attr/listChoiceIndicatorSingle"
    android:button="@null"
    />
于 2019-08-24T14:47:16.343 回答