如何使用java代码

时间:2016-01-02 19:32:40

标签: java android

我遇到了这段代码的麻烦。我试图通过java代码更改我的ImageView的背景颜色。当我尝试这个时,imageView中根本没有任何变化。我试图通过xml改变背景颜色,它工作正常。但是通过java,它不起作用。这是为什么?我的代码有什么问题吗?

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    buttonClick();
}
public void buttonClick(){
    ImageView imgView1 = (ImageView) findViewById(R.id.image0);// i have an imageView in my resources in XMl.
    imgView1.setBackgroundColor(Color.RED);
}

这是我xml的一部分

<RelativeLayout    xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<GridLayout
    android:layout_width="match_parent"
    android:layout_height="400dp"
    android:columnCount="3"
    android:rowCount="3"
    android:id="@+id/gridLayout"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentEnd="true">
    <ImageView
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:id="@+id/image0"
        android:layout_row="0"
        android:layout_column="0"/>

2 个答案:

答案 0 :(得分:2)

请尝试

backgroundImg.setBackgroundColor(Color.parseColor("#ff0000"));

backgroundImg.setBackgroundColor(Color.rgb(255, 0, 0));

另外,您可能需要在设置颜色后使视图无效:

backgroundImg.invalidate();

答案 1 :(得分:2)

您可以使用

fakes

在api level 23中你可以使用ContextCompat提供的getColor方法:

imageView.setBackgroundColor(getResources().getColor(R.id.your_color));


imageView.setBackgroundColor(Color.parse("#your_color"));

上述所有方法都可以正常使用。希望这有帮助!