2016-11-23 67 views
-1

我試圖使用Android GridView來顯示2列圖像。Android Gridview使圖像變大

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:numColumns="2" 
    android:verticalSpacing="5dp" 
    android:horizontalSpacing="5dp" 
    android:stretchMode="columnWidth" 
    android:gravity="center"/>  

我在三星J2物理設備上運行應用程序。截圖如下所示

App Screenshot

幫助!

  1. 我無法讓圖像變得更大 - 它們都是200x150 - 屏幕截圖看起來沒有看到顯示200x150的任何地方。我嘗試了各種選擇 - 但是正確的選擇。
  2. 我想顯示每個圖像下的文本 - GridView似乎沒有選項。我必須使用TableView嗎?

非常感謝

艾耶

+1

您可以使用自定義GridView適配器使每個圖像下的文本 –

+0

使用自定義GridView適配器或回收視圖 – Pavya

回答

2

是的我的朋友,你可以使用自定義佈局和一個適配器,以延伸BaseAdapter來實現您的需要。請遵循以下步驟。

==> cust_layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:gravity="center" 
android:orientation="vertical"> 

<ImageView 
    android:id="@+id/cga_iv" 
    android:layout_width="@dimen/Al_grid_image_width" 
    android:layout_height="@dimen/Al_grid_image_height" /> 

<TextView 
    android:id="@+id/cga_txt_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 

</LinearLayout> 

==> cust_adpt.java

延伸 BaseAdapter並執行其所有被覆蓋的方法

public class cust_adpt extends BaseAdapter { 

getview方法進行更改

自定義類像以下。這裏AlCover和AlBuckName是我的數組列表,包含我的數據並在gridview中設置爲分別爲和TextView

@Override 
public View getView(int i, View v, ViewGroup viewGroup) { 
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 

    View view = inflater.inflate(R.layout.cust_grid_album, null, true); 

    ImageView iv = (ImageView) view.findViewById(R.id.cga_iv); 

    TextView txtname = (TextView) view.findViewById(R.id.cga_txt_name); 


    //setting image 
    Glide.with(context).load(AlCover.get(i)).placeholder(android.R.color.white).centerCrop().into(iv); 


    //setting text 
    txtname.setText(AlBuckName.get(i)); 


    return view; 

} 

最後,您可以簡單地在活動中設置適配器。其中imagedata和textdata分別是包含圖像和文本的數組列表。

如果您仍然面臨任何問題,請告訴我。

1

嘗試this like了!我認爲這是一個非常好的開始的例子,讓你做你想做的事。

希望這會幫助你。