以编程方式设置android:background / android:src

时间:2018-06-18 10:25:56

标签: android

我需要在xml中设置两个属性:

<ImageButton
     android:id="@+id/btn_friendsMainMenu"
     android:src="@drawable/general_btn_header_friendlist"
     android:background="@drawable/ripple"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content" />

如您所见,有一个背景和一个src属性。如何以编程方式设置BOTH?

我只知道一个:它是哪一个?另一个是什么?

 btnBack.SetBackgroundResource(Resource.Drawable.thebook_backbutton);

9 个答案:

答案 0 :(得分:3)

使用setImageResource() android:src 设置为ImageButton

  

setImageResource() drawable设置为此ImageView的内容。

示例代码

btnBack.setImageResource(R.drawable.ic_camera);

使用 setBackgroundResource() android:background 设置为ImageButton

示例代码

btnBack.setBackgroundResource(R.color.colorAccent);

答案 1 :(得分:2)

您可以通过以下代码执行此操作:

private void initView() {

        rootLayout =new LinearLayout(this);
        rootLayout.setBackgroundDrawable(getResources().getDrawable(R.drawable.layer_5));
        imgLogo=new ImageView(this);
        imgLogo.setImageDrawable(getResources().getDrawable(R.drawable.splash_logo));

        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
             350,
             350);


        imgLogo.setLayoutParams(params);
        rootLayout.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
        rootLayout.addView(imgLogo);
        setContentView(rootLayout);
    } 

并在onCreate中调用initView方法

答案 2 :(得分:1)

imageView.setBackgroundResource(R.drawable.some_bg_res); // for setting background 'android:background'
imageView.setImageResource(R.drawable.some_res); // for setting src 'android:src'

答案 3 :(得分:0)

setImageResource()适用于android:src。 ImageButton从ImageView继承它。

btnBack.SetImageResource(Resource.Drawable.drawable_name)

答案 4 :(得分:0)

setBackgroundResource()设置背景 - 通过将ressource id(作为int)作为输入,它与setBackground()不同。

我很确定setImage()是设置&#39; src&#39;的方法。 xml中的属性。它还有一些不同的变体。如果您想在示例中设置drawable,请使用setImageDrawable()

答案 5 :(得分:0)

您可以在Android中以编程方式将图像设置为ImageView,请使用类似代码的方式。

imageView.setImageResource(R.drawable.android_image3);

答案 6 :(得分:0)

  

android:src使用setImageResource()

设置

  

android:background使用setBackgroundResource()

设置

代码

ImageButton btn = (ImageButton)findViewById(R.id.btn_friendsMainMenu);
btn.setImageResource(R.drawable.general_btn_header_friendlist)
btn.setBackgroundResource(R.drawable.ripple)
  

ImagResource将位于BackgroundResource之上。

答案 7 :(得分:0)

There are already true answers but a better approach would be to put this attributes in styles.xml to and give that style to the buttons you want to use to increase clarity and reduce the number of lines you have to write. When your application gets bigger, setting everything from activity/fragment will become unmaintainable.

If your only goal is to change it in the code then take a look at this.

How to programmatically set style attribute in a view

答案 8 :(得分:-1)

ImageButton btn = (ImageButton)findViewbyId(R.id.img_btn)

btn.setImageResource(R.drawable.image)    
btn.setBackgroundResource(R.drawable.ripple)