ドローアブルで背景が定義されたレイアウトがあり、ある条件下でそれを別の条件に変更したいと考えています。現在の背景の識別子を取得して、それが何であるかを知るにはどうすればよいですか?
質問する
5692 次
4 に答える
12
これは非常に古い質問かもしれませんが、まだ探している人がいる場合に備えて:
if(yourView.getBackground().getConstantState().equals(
getResources().getDrawable(R.drawable.yourdrawable).getConstantState()){
//do something if this is the correct drawable
}
null をチェックすることを思い出してください。yourView.getBackground()
ソースがベクター型ドローアブルの場合、場合によっては null を返すことがあります。
于 2016-08-30T04:51:36.713 に答える
3
こんにちは、この例を試すことができます。
btnNew =(Button)findViewById(R.id.newButton);
// compare newlist
if(newButton.getBackground()!=(findViewById(R.id.imgAdd)).getBackground())
{
btnNew.setBackgroundResource(R.drawable.imgDelete);
}
于 2012-11-29T08:20:26.467 に答える
1
この方法で試すことができます。
条件に応じて背景を変更したいレイアウトにIDを割り当てます。そしてこのようにします
linear1 = (LinearLayout) findViewById(R.id.bg_l_l);
if(condition==true)
{
linear1.setBackgroundDrawable(R.drawable.sample_thumb_0);
}
else if (condition2==true)
{
linear1.setBackgroundDrawable(R.drawable.sample_thumb_1);
}
else
{
linear1.setBackgroundDrawable(R.drawable.sample_thumb_2);
}
于 2012-11-29T08:25:43.770 に答える
1
あなたは単に全体Drawable
を得ることができますDrawable beforeClickDrawalbe=view.getBackground();
次のようにして、ビューの背景を変更します。view.setBackgroundDrawable(getResources().getDrawable(R.drawable.YOUR_DRAWABLE));
そして、最初の背景に戻したい場合は、Drawable 全体があるため、ID は必要ありません。
view.setBackgroundDrawable(beforeClickDrawalbe));
それで全部です!
于 2013-03-17T10:46:33.113 に答える