2012-02-01 22 views
0

私はビットマップを持っています。私は現在の電話機(320ピクセル)の画面の横幅に合わせて画面に表示する必要があります。ビットマップを画面の幅に合わせて表示するにはどうすればよいですか?

私はそれを試しているが、何かがうまくいかない。

問題は、ビットマップが必要な幅を得ていないことです。左と右に2つの空白が表示されています。それは画面の高さに合っているからですが、私はそれを望んでいません、私はビットマップが私が望む幅を持つように強制したいです。ビットマップの高さの一部が画面外にある場合は問題ありません。

レイアウトにイメージを追加するときに幅を強制する必要があります。つまり、イメージは縦横比を維持する必要がありますが、イメージは画面の高さより高くなければならず、イメージは画像の高さが画面の高さより高い場合は不完全であることが示されています。レイアウトが画像を尊重し、画面の高さに画像のすべての高さを表示するようにレイアウトが強制されているので、これは起こっていないので、問題はレイアウトルールにあると思う。

with:

View view; 
Bitmap aux = Util.loadImage(filename); //image loaded but with his original width 
Bitmap image = Util.scaleBitmap(aux, 320); //scaling to 320 
((ImageView)view).setImageBitmap(resource.image); 

RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(320 , h); 
rlp.addRule(RelativeLayout.CENTER_HORIZONTAL); 
rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP); 

layout.addView(view , rlp); 

コードで何が間違っていますか?

答えて

0

android:scaleType = "fitXY"このタグを使用してみてください。

+0

Javaでプログラム的に行う方法は? – NullPointerException

+0

それは多かれ少なかれ動作しますが、それは高さにぶら下がっており、私は高さをstrectchしたくない、私は幅を伸ばしたいだけではありませんか? – NullPointerException

0

DIP(デバイスに依存しないピクセル)を使用していない限り、ピクセル数を決してハードコードするべきではありません。それはあなたの携帯電話、320幅で動作するかもしれませんが、別の携帯電話はどうですか?またはタブレットですか?

ImageView.scaleTypeを使用する必要があります。 here

CENTER_INSIDEはおそらく必要なものです。

+0

Javaでプログラム的に行う方法は? – NullPointerException

3

イメージビューのようなXMLファイルでは、以下のようにfill_parentに等しいレイアウト幅があり、scaleType属性も使用する必要があります。

android:layout_width="fill_parent" 
android:scaleType="fitXY" 

Javaファイルでは、以下のコードを使用することで同じことが達成されます。私はlayout_widthではなくscaleTypeについてのみ話していますが、layout_widthもjavaコードを使用するにはfill_parentでなければなりません。

setScaleType(ImageView.ScaleType.FIT_XY); 

ご理解ください。

+0

tryed it、did not work – NullPointerException

+0

@ AndroidUser99更新された回答を確認してください。 –

+0

それは多かれ少なかれ動作しますが、それは高さにぶら下がっています、そして、私は高さをstrectchしたくない、私は幅を伸ばしたいだけではありませんか? – NullPointerException

0

アンドロイド使用:そのImageViewのためのlayout_width =「fill_parent」:ImageViewのためのXMLファイルで、背景アンドロイドならば、あなたは背景として設定されている画像は、画面全体の幅を伸ばすだろう。これは画像ソースではなく、背景属性です。

Javaファイルでは、以下のコードで同じことが達成されます。

setBackgroundDrawable(getResources().getDrawable(R.drawable.yourimagefile)); 

私の提案は、一時的に好きな場合に使用できます。もう一度、私は占い私は背景属性を使用することが示唆されていますミリアンペアないSRCImageViewの

の属性私も画像ビューのソースではない背景にも同じ効果をしようとしています。それがあなたを助けることを願っています。

関連する問題