Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java为视图创建样式xml(按钮)_Java_Android_Xml - Fatal编程技术网

用java为视图创建样式xml(按钮)

用java为视图创建样式xml(按钮),java,android,xml,Java,Android,Xml,这是我查看的xml样式(按钮) 请建议我如何实现这一点,我不可能将此xml保存在drawable中并进一步使用它,如btn.setBackgroundDrawable(getResources().getDrawable(R.drawable.xml_style))我不明白。为什么要使用Java而不是xml? XML更容易(x) 我觉得你把事情搞糊涂了 你可以这样做: Drawable d = getResources().getDrawable(R.layout.your_xml_file);

这是我查看的xml样式(按钮)


请建议我如何实现这一点,我不可能将此xml保存在drawable中并进一步使用它,如
btn.setBackgroundDrawable(getResources().getDrawable(R.drawable.xml_style))

我不明白。为什么要使用Java而不是xml? XML更容易(x)

我觉得你把事情搞糊涂了

你可以这样做:

Drawable d = getResources().getDrawable(R.layout.your_xml_file);
这将从xml文件中返回一个drawable


我希望它会有帮助。

尝试
按钮。setCompoundDrawablesWithIntrinsicBounds(0,R.drawable.your_xml,0,0)您是否尝试了
btn.setBackgroundResource(R.drawable.your_xml)
?@Aniruddha我不想使用XML文件进行样式设置。我想用Java代码创建相同的样式。请建议是否有任何方法可以做到这一点。我可以知道您为什么不想使用XML吗?应用程序内用户可以自定义视图。动态修改XML是不可能的,但可以通过Java完成。是的,您是对的,XML更容易,但我想从Java创建它作为我的应用程序需求。你能开发这个吗。我不明白为什么:)可能是我不明白。在应用程序中,用户将被允许自定义视图。动态修改xml是不可能的,但可以通过java完成。这取决于您要修改的内容,但例如,如果您想在EditText和Textview之间进行选择,您可以将两者都放在xml文件中。一个可见性=消失,另一个可见性=可见。您可以使用setVisibility()通过java进行更改。修改将基于我发布的xml代码。如笔划、转角、填充、状态
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);
Drawable d = getResources().getDrawable(R.layout.your_xml_file);