views:

342

answers:

3

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 RelativeLayout 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?

+2  A: 

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

Alex Volovoy
That's great. I found them. Also found the corresponding `R.drawable.btn_radio`. But that's just one. There are `btn_radio_off.png`files etc. How can I access those? Is there something like statemanagement?
Peterdk
it's a stateful drawable. It changes the state based on the state of the View. If you look at it in SDK folder it's defined as XML. By looking to the XML you can see which actual png are being used ( they are in drawable-hdpi/mdpi folders. Stateful drawable are simply awesome and you can do same stuff with colors too.
Alex Volovoy
+1  A: 

For sake of completion:

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();
Peterdk
A: 

Check out this site, for a listing of all the drawables already packaged into Android. They're mainly used as assets in various base apps (e.g. calendar, phone, maps).

Darwyn