2010-12-17 4 views
0

Ich versuche Bild auf einem Bildansicht Exemplars gelten ... aber es tut es richtig zu decken ... bitteBild doesnt Titelbild Ansicht voll

hier beraten sie mein Bild View-Code ist:

android:id="@+id/imageViewVessel" 
    android:layout_width="fill_parent" 
    android:scaleType="fitStart" 
    android:layout_height="170dip" 
    android:src="@drawable/vessel" 

EDIT von kcoppock: Hinzufügen von Code aus devaditya Kommentar unterhalb

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

Es gibt keinen Code :) – Jonas

+0

Können Sie Ihre XML-Datei posten? – Sandy

Antwort

1

Sie Tongeschlecht in der Layout-Datei festlegen: android: sca leType = "fitXY" oder rufe setScaleType mit fitXY auf.

6

Um Gao's Antwort zu erweitern, müssen Sie für Ihr ImageView festlegen, aber es ist unwahrscheinlich, dass fitXY der gesuchte scaleType ist. Sie können die vollständige Liste der in den obigen Link zu finden, aber einige der häufigsten sind:

  • centerCrop: Dies wird das Seitenverhältnis des Bildes beibehalten, vollständig füllt den Frame, aber Zuschneiden aus entweder mit der linken und rechts, oder oben und unten, wenn das Seitenverhältnis von Rahmen und Quellbild unterschiedlich ist.

  • centerInside: Dies behält auch das Seitenverhältnis bei, aber das Bild wird so skaliert, dass es vollständig in die Ansicht passt, sodass die längste Kante die gleiche Größe wie der Rahmen hat. Dies kann zu einem Letterbox-Effekt führen, wenn das Seitenverhältnis von Bild und Quellbild unterschiedlich ist. fitStart und fitEnd sind die gleiche Skalierungsmethode, aber sie haben unterschiedliche Platzierung des Bildes (oben links bzw. unten rechts).

  • fitXY: Dieser sollte nur verwendet werden, wenn eine unverhältnismäßige Skalierung die Grafik nicht beeinflusst. Im Fall von Bitmap-Grafiken ist dies fast immer schlecht zu verwenden. Dadurch wird die Breite des Quellbilds auf die Breite der Ansicht und die Höhe des Quellbilds auf die Höhe der Ansicht festgelegt, ohne dass das Seitenverhältnis des Quellbilds beibehalten wird.

+1

Beachten Sie, dass 'centerInside' nur nach unten skaliert wird, niemals nach oben. – ohhorob

+0

Coppock gute Vorschläge ... Ich habe alle versucht, aber ich bin nicht in der Lage, die Breite entsprechend der Basis anzupassen ... habe jemand die ähnliche Sache gemacht ?? – devaditya

+0

@ohhorob: Wirklich? Gut zu wissen, das wusste ich eigentlich nicht. @devaditya: Was genau versuchst du zu tun, KEIN davon kann erreichen? Ich verstehe ehrlich gesagt nicht. – kcoppock