我正在尝试编写一个三态开关,但是我无法访问默认的com.android.internal.R.styleable.Switch_track可绘制对象作为背景。
如何获取该可绘制对象?
是否有其他方法可以获取默认背景?
我正在尝试编写一个三态开关,但是我无法访问默认的com.android.internal.R.styleable.Switch_track可绘制对象作为背景。
如何获取该可绘制对象?
是否有其他方法可以获取默认背景?
仅供参考: 虽然不建议访问内部资源,你应该知道它们可能会因为厂商或操作系统更新而更改或被删除,但是在运行时访问它们是可能的:
int id = Resources.getSystem().getIdentifier("Switch_track", "styleable", "android");
您不应访问私有资源,因为您无法确保该资源在所有设备上都可用。即使它可用,您也无法确定它是否相同。
如果您想使用私有资源,您必须从SDK或Android源代码中将其复制到项目资源中。
Switch_track
,这个名称表示 Switch
小部件具有 android:track
属性。然后你可以在 styles.xml
中找到该属性引用的可绘制对象,例如 switch_track_holo_light
(这取决于主题)。 - Tomik