0

他のトピックで私の質問に対する答えが見つかりませんでした。

背景のドローアブルを持つ ImageView があります。この ImageView には onTouchListener があり、ドラッグすることができます。ImageResource をこのビューに (パディングと共に) 追加したいと思います。画像は常に (正方形の) ImageView の中央にある必要があります。問題は次のとおりです。ImageView全体をディスプレイからドラッグすると、ImageView内の画像が縮小/サイズ変更し始めます。ウィンドウにドラッグして戻すと、許容されるサイズまで再び拡大し始めます (パディングがあるため)。

ウィンドウの外にドラッグしたときに、この画像のサイズが変更されないようにするにはどうすればよいですか?

RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout);
ImageView i = new ImageView(this);
i.setPadding(10);
i.setImageResource(R.drawable.image);
i.setBackgroundDrawable(getResources().getDrawable(R.drawable.bg));
i.setPositionAndSize(0, 0); // creates layout params and positions
                            // it with margins in relative layout
i.setOnTouchListener(touch);
layout.addView(i);
4

1 に答える 1

0

この相対レイアウトに、layout_width または height に WrapContent プロパティがある場合、それらのプロパティは動的に変更されます。

ビューを追加すると、そのコンテンツが変更され、それらのプロパティも変更されます。

この imageView にレイアウト プロパティを次のように設定する必要があります。設定する positionAndSize は、レイアウト パラメータのプロパティで設定する必要があります。

 RelativeLayout.LayoutParams lyp = new  RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
ImageView i = new ImageView(this);
            (the properties you want the parent of the view (layout) to receive must be setted here in "lyp"). 
i.setLayoutParams(lyp);
layout.addView(i,lyp);

Relative Layout に何かを追加する場合は、それらのプロパティが必要になることに注意してください。

相対レイアウトは、コンテンツが FIXED の高さと幅に収まるように設計されているため、レイアウトでこれらのプロパティを修正してみてください。

希望は役に立ちました!!

于 2013-05-10T11:43:46.070 に答える