web-dev-qa-db-ja.com

androidでImageViewソースを変更する方法

これは私のxmlです。これは、アクティビティに表示されるフラグメント内にあります。

<FrameLayout
                    Android:id="@+id/frame1"
                    Android:layout_width="wrap_content"
                    Android:layout_height="115dp"
                    Android:layout_margin="2dp"
                    Android:layout_weight="0.33">

                    <ImageView
                        Android:id="@+id/whoamiwith"
                        Android:layout_width="match_parent"
                        Android:layout_height="match_parent"
                        Android:scaleType="fitCenter"
                        Android:src="@drawable/default_image" />
                </FrameLayout>

そして、これは私のJava code:

@Override
public void onClick(View click) {
    if (click == profileBtn) {
        whoamiwith.setBackgroundResource(R.drawable.image_i_wanna_put);
    }
}

画像ビューの画像ソースを変更しようとしています。構文エラーはありませんが、ボタンをクリックすると、エミュレーターが強制的に閉じるようになり、logcatで次のように表示されます。

Java.lang.NullPointerException

それは次の行を指しています:

whoamiwith.setBackgroundResource(R.drawable.loginbtn);
28
CENT1PEDE
whoamiwith.setImageResource(R.drawable.loginbtn);
60
Bhanu Sharma
 ImageView whoamiwith = (ImageView)findViewById(R.id.whoamiwith)  
 Drawable new_image= getResources().getDrawable(R.drawable.loginbtn);   
    whoamiwith.setBackgroundDrawable(new_image);
9
Eloytxo

ちょうど試して

ImageView whoamiwith = (ImageView)findViewById(R.id.whoamiwith)  
whoamiwith.setImageResource(R.id.new_image);
3

画像ビューの初期化:

whoamiwith = findViewByid(R.id.whoamiwith);

次に、Clickメソッドで、次の行を記述して画像リソースを変更します。

 if(Android.os.Build.VERSION.SDK_INT > 15)
    {
        // for API above 15
        whoamiwith.setBackground(getResources().getDrawable(R.drawable.loginbtn));
    }
    else
    {
        // for API below 15
        whoamiwith.setBackgroundDrawable(getResources().getDrawable(R.drawable.loginbtn));
    }
1
SweetWisher ツ

例外はwhoamiwithがnullです。 ImageView whoamiwith =(ImageView)findViewById(R.id.whoamiwith)のようにwhoamiwithを初期化しましたか

参照 setImageDrawableを動的に使用してImageViewに画像を設定する

1
Manivannan
ImageView whoamiwith = (ImageView)findViewById(R.id.whoamiwith);
whoamiwith.setImageResource(R.drawable.image_i_wanna_put);
1
RussVirtuoso