Android 获取可绘制的图像ID

Android 获取可绘制的图像ID,android,drawable,android-drawable,Android,Drawable,Android Drawable,我在drawable文件夹中有许多图像。我想将当前选定的图像作为“单击”按钮时的墙纸 int[] resources = { R.drawable.tssr_1, R.drawable.tssr_2, R.drawable.tssr_3, R.drawable.tssr_4, R.drawable.tssr_5, R.drawable.tssr_6 }; WallpaperManager myWallpaperManager = Wallpape

我在drawable文件夹中有许多图像。我想将当前选定的图像作为“单击”按钮时的墙纸

int[] resources = {
    R.drawable.tssr_1,
    R.drawable.tssr_2,
    R.drawable.tssr_3,
    R.drawable.tssr_4,
    R.drawable.tssr_5,
    R.drawable.tssr_6
};

WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext());

try {
    //set wallpaper picture from resource here
    myWallpaperManager.setResource(R.drawable.tssr_1);
    //showToast("Success set as wallpaper");
} catch (IOException e) {
  //showToast("Error set as wallpaper");
}

这里R.drawable.tssr_1是硬编码的,因此应用程序成功地将tssr_1图像设置为墙纸图像。我想设置屏幕上当前显示的图像。如何获取该图像的ID?

也许您应该在视图中调用MyWallperManager.setResource.setOnClickListener谢谢li2的回复。你能写一小段代码吗?如何在运行时遍历数组并选择当前显示的图像ID?是否希望知道如何从资源数组中获取值?实际上,我正在使用ViewFlipper,并希望将ViewFlipper中的当前图像设置为墙纸。我不知道,只是发现ViewFlipper有一个名为getDisplayedChild的方法。我真是太傻了。我正在将此子索引设置为墙纸图像。非常感谢大家。ViewFlipper.SetOnLongClickListener新建OnLongClickListener,您应该覆盖侦听器的公共布尔值onLongClickView vTheMyWallperManager.setResourceresId;很好,谢谢。但是现在图像超出了屏幕的界限。这是我尝试的这是我尝试的位图WPimg=BitmapFactory.DecodeResourceMcContext.getResources,ImageID[imageIDforWallPaper];壁纸管理器wm=壁纸管理器getSystemServiceWALLPAPER\u服务;尝试{wm.setbitmappwpimg;}捕获IOException e{//TODO自动生成的捕获块e.printStackTrace;}wm.suggestDesiredDimensionswidth,height;但应用程序中止了。有什么建议可以让它发挥作用吗。谢谢,也许你应该提出一个新问题,并添加有关中止的详细信息。让更多的人看到。
    ViewFlipper vf = new ViewFlipper(getApplicationContext());        
    ImageView image = new ImageView(getApplicationContext());
    // set resId as image's tag, then add to viewflipper.
    image.setTag(imageResId);
    vf.addView(image);

    // the listener will be invoked when image in flipper is clicked and held,
    // then you can set the image as your wall paper. 
    vf.setOnLongClickListener(new OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            int resId = (Integer) v.getTag(); // get image tag 
            myWallpaperManager.setResource(resId);
            return false;
        }
    });