我想将图像视图动态添加到全屏线性布局。我已经编写了一些代码,但是某些图像视图部分或完全不在屏幕外。有时候,图片视图会在手机屏幕上显示。
如何确保它们完全保留在屏幕中。
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
final int widthArea = displayMetrics.widthPixels;
final int heightArea = displayMetrics.heightPixels;
final LinearLayout home = (LinearLayout) findViewById(R.id.llHome);
ImageView imgView = new ImageView(MainActivity.this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(200, 200);
imgView.setLayoutParams(lp);
imgView.setImageResource(R.drawable.img_1);
imgView.setX(r.nextInt(widthArea));
imgView.setY(r.nextInt(heightArea));
home.addView(imgView);
答案 0 :(得分:0)
您应该考虑图像本身的尺寸。设置X和Y将其起点放置在屏幕内,但可能会在侧面泄漏。
首先,将图像加载为Drawable
,然后将drawable.getWidth()
(甚至是高度,这取决于您的布局)添加到您的 X 位置。
imgView.setX(r.nextInt(widthArea - drawable.getWidth()) + drawable.getWidth());