Android:在ImageView中检索当前资源
我创建了一个ImageView,在我的活动中,每隔几秒钟我就会将图片更改为不同的图片。我还有一个按钮,当按下时,应该会得到当前显示图片的资源id,问题是每次我这样做时:Android:在ImageView中检索当前资源,android,imageview,Android,Imageview,我创建了一个ImageView,在我的活动中,每隔几秒钟我就会将图片更改为不同的图片。我还有一个按钮,当按下时,应该会得到当前显示图片的资源id,问题是每次我这样做时: ImageView view = (ImageView) findViewById(R.id.imageView1); 它总是给我xml中定义的resourceId,而不是我动态更改的resourceId,我如何实现这一点?下面是我的活动类中的代码: public void startImages(View v) { .
ImageView view = (ImageView) findViewById(R.id.imageView1);
它总是给我xml中定义的resourceId,而不是我动态更改的resourceId,我如何实现这一点?下面是我的活动类中的代码:
public void startImages(View v) {
...
delayedImage(0);
}
private void delayedImage(final int index) {
//stop at the 5th picture
if (index > 5) return;
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
String drawableId = "picture" +index;
int resourceId = getResources().getIdentifier(drawableId, "drawable", getPackageName());
ImageView view = (ImageView) findViewById(R.id.imageView1);
view.setImageResource(resourceId);
delayedImage(index+1);
}
}, 500);
}
因此,每5秒钟就会设置一个新图像,当我单击按钮Share时,我想检索上面方法中ImageView集合中当前的resourceId
//send image to send text
public void shareImage(View v){
ImageView view = (ImageView) findViewById(R.id.imageView1);
??????
}
我在调试时检查了ImageView对象,我看到有人通过这样做获得int值:
Field f = ImageView.class.getDeclaredField("mResource");
f.setAccessible(true);
Object out = f.get(view);
但我无法从中获取实际的R drawable名称,当我试图从中检索它时,我需要这个名称
String path = "android.resource://your.package.name/" +getPackageName() +"/" +???;
。。有人能帮忙吗