我正在尝试在我的Android应用程序的社交供稿列表视图上显示多个图像,类似于Facebook Android应用程序的操作。
请参考下图:



帖子中最多可显示3张图像。
对于多张图像,我希望图像按照其尺寸以网格类型格式动态排列/调整大小,如图所示。

我已经尝试通过指定layout_weight来调整LinearLayout中的3个ImageView,但是不起作用。
任何形式的帮助/建议或示例代码都非常感谢!!!奥兹

最佳答案

我已完成此操作,请检查是否可以得到答案
 这是XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="400dp"
    >
    <FrameLayout
        android:id="@+id/imgframe"
        android:layout_width="match_parent"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_height="match_parent">
    </FrameLayout>
    </RelativeLayout>


现在我已经在语法上完成了图像的设置
这是

public class ImageShow extends Activity {
            ImageView img1,img2,img3,img4;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.image_dsgn);
                Display display = getWindowManager().getDefaultDisplay();
                Point size = new Point();
                display.getSize(size);
                int width = size.x;
                int sst=width-20;
                Log.d("Width is",String.valueOf(sst));
                Log.d("Width is",String.valueOf(width));
                int i=3;
                FrameLayout frameLayout=(FrameLayout)findViewById(R.id.imgframe);
                if(i==1)
                {    ImageView imageView = new ImageView(this);
                    imageView.setImageResource(R.drawable.img3);
                    imageView.setPadding(0,5,0,0);
                    imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                    imageView.setLayoutParams(new FrameLayout.LayoutParams(width,400));
                    frameLayout.addView(imageView);
                }
                if(i==2)
                {    ImageView imageView = new ImageView(this);
                    imageView.setImageResource(R.drawable.img3);
                    imageView.setPadding(0,5,0,0);
                    imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                    imageView.setLayoutParams(new FrameLayout.LayoutParams(width/2,
                            400));
                    ImageView imageView1 = new ImageView(this);
                    imageView1.setImageResource(R.drawable.img3);
                    imageView1.setScaleType(ImageView.ScaleType.FIT_XY);
                    imageView1.setLayoutParams(new FrameLayout.LayoutParams(width/2,
                            400));
                    imageView1.setX(width/2);
                    imageView1.setPadding(5,5,0,0);
                    frameLayout.addView(imageView);
                    frameLayout.addView(imageView1);
                }
                if(i==3)
                {
                    ImageView imageView = new ImageView(this);
                    imageView.setImageResource(R.drawable.img3);
                    imageView.setPadding(0,5,0,0);
                    imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                    imageView.setLayoutParams(new FrameLayout.LayoutParams(width/2,
                            400));
                    ImageView imageView1 = new ImageView(this);
                    imageView1.setImageResource(R.drawable.img3);
                    imageView1.setX(width/2);
                    imageView1.setPadding(5,5,0,0);
                    imageView1.setScaleType(ImageView.ScaleType.FIT_XY);
                    imageView1.setLayoutParams(new FrameLayout.LayoutParams(width/2,
                            200));
                    ImageView imageView2 = new ImageView(this);
                    imageView2.setImageResource(R.drawable.img3);
                    imageView2.setX(width/2);
                    imageView2.setY(200);
                    imageView2.setPadding(5,5,0,0);
                    imageView2.setScaleType(ImageView.ScaleType.FIT_XY);
                    imageView2.setLayoutParams(new FrameLayout.LayoutParams(width/2,
                            200));
                    frameLayout.addView(imageView);
                    frameLayout.addView(imageView1);
                    frameLayout.addView(imageView2);
                }
                if(i==4)
                {
                    //x=0,y=0
                    ImageView imageView = new ImageView(this);
                    imageView.setImageResource(R.drawable.img3);
                    imageView.setPadding(0,5,0,0);
                    imageView.setLayoutParams(new FrameLayout.LayoutParams(sst/2,400));
                    imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                    //x=200,y==0
                    ImageView imageView1 = new ImageView(this);
                    imageView1.setImageResource(R.drawable.img3);
                    imageView1.setX(sst/2);
                    imageView1.setPadding(2,5,0,0);
                    imageView1.setLayoutParams(new FrameLayout.LayoutParams(sst/2,400/3));
                    imageView1.setScaleType(ImageView.ScaleType.FIT_XY);

                    ImageView imageView2 = new ImageView(this);
                    imageView2.setImageResource(R.drawable.img3);
                    imageView2.setX(sst/2);
                    imageView2.setY(400/3);
                    imageView2.setPadding(2,5,0,0);
                    imageView2.setLayoutParams(new FrameLayout.LayoutParams(sst/2,400/3));
                    imageView2.setScaleType(ImageView.ScaleType.FIT_XY);

                    ImageView imageView3= new ImageView(this);
                    imageView3.setImageResource(R.drawable.img3);
                    imageView3.setX(sst/2);
                    imageView3.setY((400/3+400/3));
                    imageView3.setPadding(2,5,0,0);
                    imageView3.setLayoutParams(new FrameLayout.LayoutParams(sst/2,400/3));
                    imageView3.setScaleType(ImageView.ScaleType.FIT_XY);


                    TextView textView=new TextView(this);
                    textView.setText("+ 6");
                    textView.setX(sst/2);
                    textView.setTextColor(Color.parseColor("#ffffff"));
                    textView.setTypeface(null, Typeface.BOLD);
                    textView.setY(400/3+400/3);
                    textView.setGravity(Gravity.CENTER);
                    textView.setTextSize(20);
                    textView.setLayoutParams(new FrameLayout.LayoutParams(sst/2,400/3));
                    frameLayout.addView(imageView);
                    frameLayout.addView(imageView1);
                    frameLayout.addView(imageView2);
                    frameLayout.addView(imageView3);
                    frameLayout.addView(textView);
                }

            }
        }

07-24 09:49
查看更多