有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

来自ArrayList的java随机背景<Drawable>

在我的应用程序中,我有这部分代码用于将背景图像设置为按钮

private int [] [] double;
private List<Drawable> images;
----------------------------------------------------------
images = new ArrayList<Drawable>();

images.add(getResources().getDrawable(R.drawable.img1));
images.add(getResources().getDrawable(R.drawable.img2));
images.add(getResources().getDrawable(R.drawable.img3));
images.add(getResources().getDrawable(R.drawable.img4));
images.add(getResources().getDrawable(R.drawable.img5));
images.add(getResources().getDrawable(R.drawable.img6));
images.add(getResources().getDrawable(R.drawable.img7));
images.add(getResources().getDrawable(R.drawable.img8));
-----------------------------------------------------------
button.setBackgroundDrawable(images.get(double[x][y]));

现在我正在尝试从这个ArrayList<Drawable>.将随机图像设置到这个按钮。有人能给我一些有用的提示吗


共 (1) 个答案

  1. # 1 楼答案

    是的,你应该制作一个整数数组列表,把可绘制的id放进去,然后用setBackgroundResource访问它

    例如:

    private List<Integer> images;
    
    images = new ArrayList<Integer>();
    
    images.add(Integer.valueOf(R.drawable.img1));
    button.setBackgroundResource(images.get(double[x][y]).intValue());
    

    这样,它将消耗更少的内存,因为现在您只存储整数,而不是图像可绘制文件,而且效率更高