public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1;
final ImageView image;
button1 = (Button) findViewById(R.id.button1);
image = (ImageView) findViewById(R.id.imageView1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
for (int j = 1; j < 6; j++) {
Drawable dreaw = getResources().getDrawable(getResources().getIdentifier("d002_p00"+j, "dreaw",getPackageName()));
image.setBackgroundResource("R.drawable." +dreaw);
}
}
});
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
}
}
我是android的新手我想按下我的按钮图像时想要更改我的图像
在这一行image.setBackgroundResource("R.drawable." +dreaw);
中显示错误我可以如何解决它,请帮助我。
答案 0 :(得分:2)
你做不到:
Drawable dreaw = getResources().getDrawable(getResources().getIdentifier("d002_p00"+j, "dreaw",getPackageName()));
image.setBackgroundResource("R.drawable." +dreaw);
尝试:
Drawable dreaw = getResources().getDrawable(getResources().getIdentifier("d002_p00"+j, "dreaw",getPackageName()));
image.setBackground(dreaw);
答案 1 :(得分:1)
R.drawable.xxx不是字符串,它是每个资源的自动生成的intiger id。
image.setBackgroundResource(“R.drawable。”+ dreaw);错了。
你可以做什么
int res=getResources().getIdentifier("d002_p00"+j, "drawable",getPackageName()));
image.setBackgroundResource(RES);
答案 2 :(得分:0)
试试这个
image.setBackgroundDrawable(dreaw);
此方法已从api级别16弃用,但是对于后备兼容性,您应该使用上述方法。
答案 3 :(得分:0)
只是做:
image.setBackgroundDrawable(drew);
答案 4 :(得分:0)
正如你的评论引用“它的工作方式,它展示了我的第一张和最后一张图片。”
你只能看到第一个和最后一个图像。因为for
循环处于匆忙中,这意味着你无法看到图像的变化,因为for
循环是在 ms(Milli或Micro Seconds)。所以你想把这个
Thread.sleep(<put_how_much_ms_you_want_to_make_the_for_loop_sleep);
暂时睡觉for循环。如果你把这个
Thread.sleep(1000);//Make the thread or program blocked for 1 second.
要在For
循环中实施,您可以像这样更改For
循环。
for (int j = 1; j < 6; j++)
{
int res=getResources().getIdentifier("d002_p00"+j, "drawable",getPackageName()));
image.setBackgroundResource(res);
Thread.sleep(1000);//Make the for loop wait for 1 second.
}
通过这个你可以看到图像的过渡。 我知道这对你有帮助吗。