2012-02-01 27 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

iはルールが必要 'RelativeLayout.CENTER_HORIZONTAL' – Arkde

+0

でルールを削除するようにしてください、私はそれを削除することはできません、私は私のアプリのセクションの多くのために、このコードを使用していますので、私はそれを必要と彼らが必要とします背景画像を水平に中央に配置するには – NullPointerException

+0

私はそれを削除しようとしましたが動作しませんでした – NullPointerException

答えて

0

は、これを使用してみてください:

((ImageView)view).setScaleType(ImageView.FitCenter); 

あなたがCENTER_CROPを使用する必要があり、高さを気にしないので、より多くのオプションがhttp://developer.android.com/reference/android/widget/ImageView.html#attr_android:scaleType

+0

私はそれを試しました、うまくいきませんでした:/これはうまくいかなかったコードです:((ImageView)view).setImageBitmap(resource.image ); \t \t \t \t((ImageView)ビュー).setScaleType(ImageView.ScaleType.FIT_CENTER); – NullPointerException

0

を参照してください確認するには。

スケールタイプを定義し、画像を設定します。

CENTER_CROP - 画像の両方の次元(幅と高さ)は、対応するビューの寸法(マイナス パディングより に等しいか大きくなるように(画像の縦横比を維持 )一様に画像を拡大縮小)。

関連する問題