我目前使用自定義ArrayAdapter作爲列表。列表項目跨越屏幕的整個寬度,所以在一些設備上非常寬。縮放和錨定圖像視圖內的圖像
我在一些列表項上覆蓋了一個ImageView
,您可以輕掃一下。 用於ImageView
的XML如下:
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_centerInParent="true"
android:scaleType="matrix"
android:src="@drawable/myImage" />
視圖正確地放置,但是,爲了使圖像以適合與真寬屏幕的設備,或在橫向模式下,圖像具有非常寬。
問題是,我想縮放圖像以適應垂直方向(即fitY
,它不存在爲scaleType
,然後將圖像錨定在視圖的左側,對於不適合的所有內容被裁剪
我已經嘗試了所有的scaleType
價值觀,他們都不是完全正確的,因此,我覺得我也許應該使用matrix
和定義我自己翻譯的形象,所以我在getView
嘗試這樣做。:
//snipped out code before to initiate variables etc.
Drawable src = imageView.getDrawable();
//scale by the ratio of the heights.
int scaleFactor = imageView.getHeight()/src.getIntrinsicHeight();
Matrix imageMatrix = new Matrix();
//set the scale factor for the imageMatrix
imageMatrix.setScale(scaleFactor, scaleFactor);
//set the translation to be 0,0 (top left);
imageMatrix.setTranslate(0,0);
//assign the image matrix to the imageview.
imageView.setImageMatrix(imageMatrix);
但是這沒有任何所有的效果(即使我讓這些值真的很瘋狂)。我認爲我在錯誤的地方設置了imageMatrix - 是否有一個onDraw()
事件我可以掛鉤定製ArrayAdapter
子類?
或者我正在以完全錯誤的方式解決問題?
你有沒有試過@ @維恩/'不同大小的屏幕? – Si8
你能解釋一下如何工作嗎? –
用幾句話解釋有點難,但您可以訪問http://developer.android.com/guide/practices/screens_support.html瞭解更多信息。如果你瞭解它,讓我知道。你想要爲其設計什麼Android版本?如果它是3.0和以上,你可以使用它:) – Si8