如何在2D数组中存储图像?

时间:2014-03-19 13:19:18

标签: android multidimensional-array

我想将可绘制图像存储在2D数组中

ImageView iv1[][] = new ImageView[2][20];
    int mylist[][]={{R.drawable.step_000,R.drawable.step_001,R.drawable.step_002,R.drawable.step_003,R.drawable.step_004,
        R.drawable.step_005,R.drawable.step_006,R.drawable.step_007,R.drawable.step_008,R.drawable.step_009,R.drawable.step_010,
        R.drawable.step_011,R.drawable.step_012,R.drawable.step_013,R.drawable.step_014,R.drawable.step_015,R.drawable.step_016,
        R.drawable.step_017,R.drawable.step_018,R.drawable.step_019}, 

        {R.drawable.step_100,R.drawable.step_101,R.drawable.step_102,R.drawable.step_103,R.drawable.step_104,
        R.drawable.step_105,R.drawable.step_106,R.drawable.step_107,R.drawable.step_108,R.drawable.step_109,R.drawable.step_110,
        R.drawable.step_111,R.drawable.step_112,R.drawable.step_113,R.drawable.step_114,R.drawable.step_115,R.drawable.step_116,
        R.drawable.step_117,R.drawable.step_118,R.drawable.step_119}};

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.data);
    iv=(ImageView)findViewById(R.id.imageView1);
    iv2=(ImageView)findViewById(R.id.left);
    iv3=(ImageView)findViewById(R.id.right);
    iv2.setVisibility(View.INVISIBLE);

    Bundle bundle=getIntent().getExtras();
    String value=bundle.getString("key");
    int step = getIntent().getExtras().getInt("steps");
    Toast.makeText(getApplicationContext(), ""+step,Toast.LENGTH_SHORT).show();

    int a;
    a=step;
    for(int i=0;i<20;i++)
    {
        for(int j=0; j<a; j++)
        iv1[i][j] = (ImageView)findViewById(mylist[i][j]);
    }


    if(value.contentEquals("cristiano"))
    {
    iv.setImageResource(mylist[i][j]);
    }

1 个答案:

答案 0 :(得分:1)

您似乎正在使用两个for循环正确设置iv1 ImageView数组中的所有内容。问题是您在屏幕上将一个ImageView设置为整个阵列,因此它只显示一个。您应该尝试对多个ImageView进行GridLayout,然后逐个设置每个ImageView。我知道这样做很方便,但我认为没有办法让它像那样工作。另外,我认为iv.setImageResource(mylist[i][j]);会给你带来麻烦,因为它不在循环之内,也不知道ij是什么。