Android: Where to find the RadioButton Drawable?
Ok, I am trying to create a custom view called CheckedRelativeLayout
.
It's purpose is the same as a CheckedTextView
, to be able to use it in a list of items you want selected or in a Spinner
.
It's all working fine now, I extended RelativeLay开发者_Go百科out
and implemented Checkable
interface.
However, I am stuck on a quite simple problem: Where can I find the Drawable
that CheckedTextView
and RadioButton
use?
I looked at the sourcecode of both, and they seem to use com.android.internal.R
. Well... that's internal stuff. So I can't access it.
Any way to get these Drawables or solve the problem somehow?
look under SDK folder /platforms/android-2.0/data/res/ you can access them by either android.R.drawable ( if public ) or need to copy them as drawable to your project
For sake of completeness:
Here some code pieces that show how you I got it working with above accepted answer.
//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();
To use the new default animated radio button drawable, the correct answer is in the comment of @sidon:
?android:attr/listChoiceIndicatorSingle
Using this in the custom position relative to text:
<RadioButton
...
android:gravity="center_horizontal|bottom"
android:drawableTop="?android:attr/listChoiceIndicatorSingle"
android:button="@null"
/>
精彩评论