트라이 스테이트 스위치를 쓰려고합니다. 그러나 배경으로 사용하기 위해 기본값 com.android.internal.R.styleable.Switch_track 드로어에 액세스하지 못했습니다.안드로이드 내부 드로어 사용하기
그 드로어 블을 어떻게 얻는 지 아십니까?
기본 배경을 가져 오는 다른 방법이 있다면 알려 주시기 바랍니다.
트라이 스테이트 스위치를 쓰려고합니다. 그러나 배경으로 사용하기 위해 기본값 com.android.internal.R.styleable.Switch_track 드로어에 액세스하지 못했습니다.안드로이드 내부 드로어 사용하기
그 드로어 블을 어떻게 얻는 지 아십니까?
기본 배경을 가져 오는 다른 방법이 있다면 알려 주시기 바랍니다.
개인 자원에 액세스해서는 안되며, 모든 장치에서 자원을 사용할 수 있는지 확신 할 수 없습니다. 그리고 그것이 가능하다하더라도, 그것이 동일 할 것이라는 것을 확신 할 수 없습니다.
개인 자원을 사용하려면 SDK 또는 Android 소스에서 프로젝트 자원으로 복사해야합니다.
참조 용 : 내부 리소스에 액세스하는 것은 좋지 않으며 공급 업체 나 OS 업데이트를 통해 변경되거나 제거 될 수 있다는 것을 알고 있어야합니다. 런타임에 액세스 할 수 있습니다.
int id = Resources.getSystem().getIdentifier("Switch_track", "styleable", "android");
올바르지 않습니다. getIdentifier는 int를 반환하며 스타일 가능 객체는 int 배열입니다. 내가 할 수있는 유일한 방법은 반사를 사용하는 것입니다 믿습니다 http://stackoverflow.com/a/13841530/3508192 – charliebeckwith
죄송합니다, 수정, styleable 때로는 int 배열입니다 – charliebeckwith
괜찮습니다. 그러나 나는 또한 소스에서 Switch_track 드로어 블을 찾을 수 없습니다. 당신 은요? –
글쎄, 당신은'Switch_track'을 찾지 못할 것입니다.이 이름은'Switch' 위젯이'android : track' 속성을 가지고 있음을 나타냅니다. 그런 다음'styles.xml'에서 속성이'switch_track_holo_light'와 같은 드로어 블을 참조한다는 것을 알 수 있습니다 (테마에 따라 다름). – Tomik