我尝试使用Android GridView来显示2列图像。
<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"/>
我在Samsung J2物理设备上运行该应用程序。截图看起来像这样
帮助!
非常感谢
艾尔
答案 0 :(得分:2)
是的,我的朋友可以使用自定义布局和扩展BaseAdapter
的适配器来满足您的需求。请按照以下步骤操作。
==&GT; 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>
==&GT; cust_adpt.java
自定义类,扩展BaseAdapter
并实现其所有重写方法
public class cust_adpt extends BaseAdapter {
在getview
方法中进行更改,如下所示。其中AlCover和AlBuckName是我的数组列表,其中包含我的数据,并分别在ImageView
和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;
}
最后你可以简单地在你的activity中设置适配器。其中imagedata和textdata是分别包含图像和文本的arraylists。
gridView.setAdapter(new cust_adpt((Activity) context, imagedata, textdata));
如果您仍然遇到任何问题,请告诉我。
答案 1 :(得分:1)
试试this like!我认为这是你做你想做的非常好的开始例子。
希望这会对你有所帮助。