2011-03-16 37 views
4

我想創建一個方形圖像的網格,但我無法讓圖像出現,因爲我需要。我開始與GridView控件教程:Android GridView 3 x 6圖像裁剪

http://developer.android.com/resources/tutorials/views/hello-gridview.html

這似乎接近我想要的東西。

我可以看到的唯一區別是我想要18個圖像,它們都必須是方形的。我將列數設置爲3,然後加載18個圖像,然後應該是6行。我希望圖像能夠完全填充每一行,而不會留下任何不需要的額外大小的空白。我不知道圖像的大小,直到他們被下載到手機。希望他們幾乎是正方形開始,但我需要裁剪中心,使他們完全正方形,然後擴大他們,以充分填補3列。我需要這些圖像來保持它們的高寬比。

我似乎無法找到設置或代碼來使這項工作。圖像重疊,存在空白,不能正確縮放,或者其他問題是錯誤的。

我已經得到最接近的是通過改變GridView的教程時,我的模擬器設置爲480×800,如下所示:

 

imageView.setLayoutParams(new GridView.LayoutParams(480/3, 480/3)); 
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
imageView.setPadding(0, 0, 0, 0); 
imageView.setAdjustViewBounds(true); 

==== 

< GridView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:numColumns="3" 
    android:stretchMode="columnWidth" 
    android:gravity="fill|clip_horizontal|clip_vertical" 
/> 

這幾乎是正確的。我正在使用的正方形測試圖像缺少幾個像素,非正方形圖像不會裁剪,而是適合內部使用黑色方塊以保留比例,硬編碼值很脆弱,並且不適用於所有手機,方向或佈局。我覺得它很有趣,CENTER_CROP文檔似乎聲稱它將通過擴展以適合圖像來做我想要的,但似乎是CENTER_INSIDE。

我覺得親密,但從來沒有完全得到我想要的。也許我應該使用GridView以外的東西?有什麼建議麼?

請不要嗤之以鼻。

謝謝。

+0

請參閱http://stackoverflow.com/questions/6557516/making-grid-view-items-square – larham1 2011-08-29 22:57:24

回答

0

顯然CENTRE_CROP是正確的答案,但是您可以上傳屏幕截圖,以便我可以弄清楚並幫助您解決所面臨的問題嗎?

另外我建議你上傳item_layout xml文件。

請確保您使用的寬度爲<ImageView>以指定大小。

對於不同屏幕尺寸的靈活性,我建議你在屏幕寬度編程,除以3的寬度,並從中扣除一些填充之後,對於圖像的寬度和高度都設置相同值,這會給你在任何屏幕上的方形圖像。