如何以编程方式为视图设置背景?

时间:2015-02-13 12:34:01

标签: android android-layout

我以编程方式为布局添加了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));

我的division_line.xml / drawable是:

<?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,但它不起作用。我应该使用什么方法?

1 个答案:

答案 0 :(得分:0)

view.setBackground(getResources()。getDrawable(R.drawable.division_line)) 代替 view.setBackgroundDrawable(...)

并记住第一个2dp并不多,你要添加一个没有布局属性的视图,所以它的大小是0px x 0px

你可以在代码中这样做: view.setLayoutParams(new AbsListView.LayoutParams(300,300));