簡體   English   中英

在LinearLayout中的任意位置添加ImageView

[英]Adding an ImageView at a random position in a LinearLayout

我想將圖像視圖動態添加到全屏線性布局。 我已經編寫了一些代碼,但是某些圖像視圖部分或完全不在屏幕外。 有時,圖片視圖會在手機屏幕上顯示出來。

如何確保它們完全保留在屏幕內。

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);

您應該考慮圖像本身的尺寸。 設置X和Y將其起點放置在屏幕內,但它可能在側面泄漏。

首先,將圖像加載為Drawable ,然后將drawable.getWidth() (甚至可能取決於您的布局的高度)包含在X位置。

imgView.setX(r.nextInt(widthArea - drawable.getWidth()) + drawable.getWidth());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM