Android Gridview使图像更大

时间:2016-11-23 04:37:27

标签: android gridview xamarin tableview

我尝试使用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物理设备上运行该应用程序。截图看起来像这样

App Screenshot

帮助!

  1. 我无法让图像变得更大 - 它们都是200x150 - 屏幕截图看起来并不接近显示200x150。我尝试了所有选择 - 但是正确的选择。
  2. 我想在每个图像下显示一个文本 - GridView似乎没有选项。我是否必须使用TableView?
  3. 非常感谢

    艾尔

2 个答案:

答案 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是我的数组列表,其中包含我的数据,并分别在ImageViewTextView的网格视图中设置。

@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!我认为这是你做你想做的非常好的开始例子。

希望这会对你有所帮助。