android setBackgroundDrawable无效

时间:2014-09-20 02:44:31

标签: android

这一个12小时的调试..帮助我..

RES /可绘

    main_img1.png
    main_img2.png

XML

    android:background="@drawable/main_img1"

会员

    RelativeLayout relativelayout;

的OnCreate

    relativelayout = new RelativeLayout(this);  
    relativelayout.setBackgroundDrawable(getResources().getDrawable(R.drawable.main_img2));
    relativelayout.invalidate();

图片没有变化 setBackgroundDrawable不起作用 没有错误没有红线

您无法使用imageview,
动态变化到布局的背景,处理程序

请分享您的知识

5 个答案:

答案 0 :(得分:1)

您需要让RelativeLayout知道您所指的资源: xml

android:id="@+id/your_layout"
android:background="@drawable/main_img1"

的OnCreate

relativelayout = new RelativeLayout(this); 
relativelayout = (RelativeLayout)findViewById(R.id.your_layout)

答案 1 :(得分:0)

我认为问题在于你的drawable缺少其内在界限。因此,使用setBackgroundDrawable代替setBackgroundResource,让视图自动调整边界。

例如

relativelayout.setBackgroundResource(R.drawable.main_img2);

答案 2 :(得分:0)

请尝试这个:

的xml:

android:background="@drawable/main_img1"

的OnCreate

  RelativeLayout relativelayout;
relativelayout = (RelativeLayout)findViewById(R.id.your_layout)
    relativelayout.setBackgroudResource(null);
    relativelayout.setBackgroundResource(R.drawable.main_img2);

我希望它对你有用。

答案 3 :(得分:0)

这样做;

XML:

        <RelativeLayout>
          android:id="@+id/rel_layout"
          android:background"@drawable/main_img1"
        </RelativeLayout>

爪哇:

       RelativeLayut rel_layout=(RelativeLayout)findviewbyId(R.id.rel_layout);
       rel_layout.setBackgroundResource(R.drawable.main_img2);

答案 4 :(得分:0)

不推荐使用方法setBackgroundDrawable。而是使用

setBackgroundResource(getResources().getDrawable(R.drawable.main_img2));

还可以从xml参考您的布局,如下所示

relativelayout = (RelativeLayout)findViewById(R.id.your_layout);