2010-12-17 6 views
0

私は、画像表示インスタンス上の画像を適用しようとしています...が、それは正しくそれをカバーdoesntの... 画像doesntの表紙画像ビュー完全

を助言してくださいここでは、私のイメージ図コードです:

kcoppockによって
android:id="@+id/imageViewVessel" 
    android:layout_width="fill_parent" 
    android:scaleType="fitStart" 
    android:layout_height="170dip" 
    android:src="@drawable/vessel" 

EDIT:あなたは、レイアウト・ファイル内のスケールタイプを設定することができ

TableRow rowImage = new TableRow(this); 
rowImage.setBackgroundColor(Color.GRAY); 
rowImage.setMinimumHeight(150); 
rowImage.setGravity(Gravity.CENTER); 
rowImage.setMinimumWidth(LayoutParams.FILL_PARENT); 
ImageView imgViewVessel=new ImageView(this); 
imgViewVessel.setImageResource(R.drawable.vessel); 
imgViewVessel.setMinimumHeight(150); 
imgViewVessel.setMinimumWidth(LayoutParams.FILL_PARENT); 
imgViewVessel.setScaleType(ScaleType.FIT_XY); 
rowImage.addView(imgViewVessel); 
+0

コードはありません。 – Jonas

+0

xmlファイルを投稿できますか? – Sandy

答えて

1

以下devadityaさんのコメントから追加コード:アンドロイド:SCA leType = "fitXY"またはfitXYを指定してsetScaleTypeを呼び出します。

6

ガオの答えを拡張するには、ImageViewにscaleTypeを設定する必要がありますが、あなたが探しているscaleTypeはfitXYではありません。あなたは上記のリンクで完全なリストを見つけることができますが、最も一般的なのいくつかは以下のとおりです。

  • centerCrop:これは完全に枠を埋め、画像の縦横比を維持しますが、左のいずれかをオフにトリミングフレームとソース画像のアスペクト比が異なる場合には、右上または上端および下端を選択します。

  • centerInside:これはアスペクト比も維持しますが、最も長いエッジがフレームと同じサイズになるように、画像はビュー内に完全に収まるようにスケーリングされます。これにより、フレームとソース画像のアスペクト比が異なる場合、レターボックスタイプのエフェクトが得られます。 fitStartfitEndは同じスケーリング方法ですが、イメージの配置がそれぞれ異なります(それぞれ左上と右下)。

  • fitXY:これは、不均衡なスケーリングがグラフィックに影響を与えない場合にのみ使用してください。ビットマップグラフィックスの場合、これはほとんど常に悪いことです。これは、ソースイメージのアスペクト比を維持せずに、ソースイメージの幅をビューの幅に、ソースイメージの高さをビューの高さに設定します。

+1

「centerInside」はスケールが下がり、絶対に上がらないことに注意してください。 – ohhorob

+0

Coppock良い提案...私はそれらのすべてを試しましたが、私はベースに応じて幅を調整することができません...誰も似たようなことをしたのですか? – devaditya

+0

@ohhorob:本当ですか?知っておいて、私は実際にそれを知らなかった。 @devaditya:これらのうちどれも達成できないとあなたは正確に何をしようとしていますか?私は正直に分かりません。 – kcoppock

関連する問題