如何以编程方式设置视图的背景?
How to set background to views programmatically?
我以编程方式向布局添加了 View
以绘制水平线。
下面是 java 代码。
// I want to add a view to ll
LinearLayout ll = (LinearLayout)findViewById(R.id.main);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
View view = new View(this);
ll.addView(view);
view.setLayoutParams(params);
// this method does not work.
view.setBackgroundDrawable(getResources().getDrawable(R.drawable.division_line));
我在 /drawable 中的 division_line.xml
是:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:color="#800400"
android:width="2dp"/>
</shape>
我尝试将 division_line.xml
应用到 View
但它不起作用。我应该使用什么方法?
view.setBackground(getResources().getDrawable(R.drawable.division_line))
代替
view.setBackground可绘制对象(...)
请记住,第一个 2dp 并不多,您要添加一个没有布局属性的视图,因此它的大小为 0px x 0px
您可以在代码中这样做:
view.setLayoutParams(新 AbsListView.LayoutParams(300, 300));
我以编程方式向布局添加了 View
以绘制水平线。
下面是 java 代码。
// I want to add a view to ll
LinearLayout ll = (LinearLayout)findViewById(R.id.main);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
View view = new View(this);
ll.addView(view);
view.setLayoutParams(params);
// this method does not work.
view.setBackgroundDrawable(getResources().getDrawable(R.drawable.division_line));
我在 /drawable 中的 division_line.xml
是:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:color="#800400"
android:width="2dp"/>
</shape>
我尝试将 division_line.xml
应用到 View
但它不起作用。我应该使用什么方法?
view.setBackground(getResources().getDrawable(R.drawable.division_line)) 代替 view.setBackground可绘制对象(...)
请记住,第一个 2dp 并不多,您要添加一个没有布局属性的视图,因此它的大小为 0px x 0px
您可以在代码中这样做: view.setLayoutParams(新 AbsListView.LayoutParams(300, 300));