0

我正在整理一些代码并尝试使用附加代码分配墙纸。随机图像部分有效,将图像分配给墙纸有效,但我不知道如何获得显示为墙纸图像的确切图像。

public class RandomImage extends Activity implements OnClickListener{

    private Integer [] mImageIds = { 
        R.drawable.big1, 
        R.drawable.big2, 
        R.drawable.big3, 
    };

    private static final Random rgenerator = new Random();
    private ImageView iv;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.winner);

        Integer q = mImageIds[rgenerator.nextInt(mImageIds.length)];
        iv = (ImageView) findViewById(R.id.imageView1);
        iv.setImageResource(q);
        iv.setImageResource(mImageIds[rgenerator.nextInt(mImageIds.length)]);

        View setButton = findViewById(R.id.set_wallpaper);
        setButton.setOnClickListener(this);     
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.set_wallpaper:
                WallpaperManager myWallpaperManager = 
                    WallpaperManager.getInstance(getApplicationContext());
                try {     
                    //How to reference the image selected in above random array? 
                myWallpaperManager.setResource(????);   
                } catch (IOException e) { 
                    // TODO Auto-generated catch block     
                    e.printStackTrace();
                }
         }
     }
}
4

1 回答 1

0

为什么不声明一个存储 id 的 int 类变量,例如:

int lastImageRef;

...

lastImageRef = mImageIds[rgenerator.nextInt(mImageIds.length)];
iv.setImageResource(lastImageRef);

...

myWallpaperManager.setResource(lastImageRef); 
于 2011-04-02T16:22:40.870 回答