2017-09-14 10 views
0

レイアウト内に(クリックアクションでトリガーされた)いくつかの画像を配置したい。私は彼らが親のレイアウトから出てこないように配置しなければならない。レイアウト内に画像を配置するandroid

コードIは、レイアウトをクリックすると上の新しいイメージを追加するために使用しています:

LinearLayout layout = (LinearLayout) findViewById(R.id.layout); 
    ImageView image = new ImageView(this); 
LinearLayout.LayoutParams coordinates = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
image.setLayoutParams(coordinates); 
image.setImageResource(R.drawable.image); 
layout.addView(image); 

私はレイアウトに押すと、私は私のImageViewのがランダムに置か見なければなりません。

Random random = new Random(); 
int x = random.nextInt(layout.getWidth()); 
int y = random.nextInt(layout.getHeight()); 
image.setX(x); 
image.setY(y); 

しかし、これはできません。私のレイアウト外の画像も見えます。

+1

あなたは何のために 'ランダム'を使用していますか? – mrid

+0

これはクリックアクションです。レイアウトをクリックするたびに、レイアウトに画像をランダムに配置したいと思います。 – simplify

答えて

1

xyを左上隅 - 表示する画像の開始点に設定しています。したがって、x/y値が右下隅になる可能性があるため、その場合は画像がレイアウトから外れます。 ご注意 - x、yは、画像が描かれる始点です。 layoutWidth - x> = imageWidthおよびlayoutHeight - y> = imageHeightであることを確認する必要があります。

+0

ありがとう、それは素晴らしい仕事:) – simplify

関連する問題