这是我的视图(按钮)的xml样式
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<solid
android:color="#e92727" />
<stroke
android:width="1dp"
android:color="#d30a0a" />
<corners
android:radius="10dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<gradient
android:startColor="#e92727"
android:endColor="#d30a0a"
android:angle="270" />
<stroke
android:width="1dp"
android:color="#d30a0a" />
<corners
android:radius="10dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
</selector>
我想在java中创建这个样式而不使用drawable中的xml文件。
试图从createFromXML
实现这一目标,但不会成功。
代码:
String xml_code = initalized with above xml code;
Drawable d = null;
XmlPullParserFactory pullParserFactory;
try {
pullParserFactory = XmlPullParserFactory.newInstance();
XmlPullParser parser = pullParserFactory.newPullParser();
InputStream in_s = new ByteArrayInputStream(xml_code.getBytes("UTF-8"));
parser.setInput(in_s, null);
d = Drawable.createFromXml(getResources(), parser);
} catch (Exception e) {
e.printStackTrace();
}
btn.setBackgroundDrawable(d);
请建议我如何实现这一目标,并且我无法将此xml保存在drawable中并进一步使用btn.setBackgroundDrawable(getResources().getDrawable(R.drawable.xml_style));
答案 0 :(得分:1)
我不明白。为什么要使用Java而不是xml? XML更容易x)
我觉得你很困惑。
你可以这样做:
Drawable d = getResources().getDrawable(R.layout.your_xml_file);
这将从您的xml文件中返回一个drawable。
我希望它会有所帮助。