Android 编程图像查看重复行

Android 编程图像查看重复行,android,layout,imageview,Android,Layout,Imageview,因此,我有一个android应用程序的功能,它可以拍摄任意数量的图片,每行显示5张图片,出于某种原因,当它转到第二行时,它只会重复第一行的图片,例如,如果我有7张编号为1-7的图片,它们将显示: 12345 12 这是我的功能,谢谢你的建议 public void generateImageView(int number, String path){ //ImageView[] imageViewArray = new ImageView[number]; int

因此,我有一个android应用程序的功能,它可以拍摄任意数量的图片,每行显示5张图片,出于某种原因,当它转到第二行时,它只会重复第一行的图片,例如,如果我有7张编号为1-7的图片,它们将显示: 12345 12 这是我的功能,谢谢你的建议

public void generateImageView(int number, String path){
        //ImageView[] imageViewArray = new ImageView[number];
        int ROW_ITEMS = 5; // 5 images per row
        RelativeLayout rl = (RelativeLayout) findViewById(R.id.RelativeLayout1);
        int limit = number;//limits the number of created imageViews to number
        int rows = limit / ROW_ITEMS;//number of rows
        int leftOver = limit % ROW_ITEMS; //see if we have incomplete rows
        if (leftOver != 0){
            rows += 1;
        }
        int id = 1000;
        int belowId = R.id.send;
        while (rows > 0){
            int realItemsPerRow = ROW_ITEMS;
            if (leftOver != 0 & rows == 1){
                realItemsPerRow = Math.min(ROW_ITEMS,  leftOver);
            }

        for (int i = 0; i < realItemsPerRow; i++){

            Bitmap myBitmap = BitmapFactory.decodeFile(path + i + ".png");
            ImageView imageViewArray = new ImageView(MainActivity.this);
            imageViewArray.setId(id);
            imageViewArray.setImageBitmap(myBitmap);
            RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
            imageViewArray.setPadding(10,10,0,0);
            imageViewArray.setAdjustViewBounds(true);
            imageViewArray.setMaxHeight(80);
            imageViewArray.setMaxWidth(80);
            if (i==0) {
                lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
            } else {
                lp.addRule(RelativeLayout.RIGHT_OF, imageViewArray.getId() -1);
            }
            lp.addRule(RelativeLayout.BELOW, belowId);

            imageViewArray.setLayoutParams(lp);

            rl.addView(imageViewArray);
            id++;
        }
        belowId = id - 1;
        rows--;
public void generateImageView(整数,字符串路径){
//ImageView[]imageViewArray=新的ImageView[编号];
int ROW_ITEMS=5;//每行5个图像
RelativeLayout rl=(RelativeLayout)findViewById(R.id.RelativeLayout1);
int limit=number;//将创建的ImageView数量限制为number
int rows=limit/ROW_ITEMS;//行数
int leftOver=limit%ROW_ITEMS;//查看是否有不完整的行
如果(剩余!=0){
行+=1;
}
int id=1000;
int belowId=R.id.send;
而(行数>0){
int realItemsPerRow=行\项;
如果(剩余!=0&行==1){
realItemsPerRow=Math.min(行项目,剩余);
}
对于(int i=0;i
这是因为您只是为行中的每个位置提取相同的图像:

Bitmap myBitmap = BitmapFactory.decodeFile(path + i + ".png");
while(行>0)
之前添加:

int j = 0;
j++;
然后将上述内容更改为:

Bitmap myBitmap = BitmapFactory.decodeFile(path + ( j * ROW_ITEMS + i ) + ".png");
行--;
下添加:

int j = 0;
j++;

不要!我已经做了25年多了,我仍然有一个这样的可能一个星期。它有助于有另一套眼睛。