网格(GridView)+图片(ImageView)+文字(TextView)
时间: 2023-06-24 21:08:18 浏览: 198
网格(GridView)是Android中一个常用的布局控件,它可以让多个子控件以网格形式排列。图片(ImageView)和文字(TextView)是两种常见的子控件。
下面是一个简单的示例代码,展示了如何在网格中显示多个图片和对应的文字:
布局文件(grid_item.xml):
```xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:src="@drawable/ic_launcher_background" />
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/image"
android:layout_centerHorizontal="true"
android:text="Text" />
</RelativeLayout>
```
Activity中的代码:
```java
public class MainActivity extends AppCompatActivity {
private GridView mGridView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mGridView = findViewById(R.id.grid_view);
mGridView.setAdapter(new GridAdapter(this));
}
private class GridAdapter extends BaseAdapter {
private Context mContext;
public GridAdapter(Context context) {
mContext = context;
}
@Override
public int getCount() {
return 6; // 6个item
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.grid_item, parent, false);
}
// 设置图片和文字
ImageView imageView = convertView.findViewById(R.id.image);
imageView.setImageResource(R.drawable.ic_launcher_background);
TextView textView = convertView.findViewById(R.id.text);
textView.setText("Item " + position);
return convertView;
}
}
}
```
在这个示例中,我们使用了一个自定义的Adapter(GridAdapter),来为GridView提供数据源和子控件的显示。在Adapter的getView()方法中,我们使用了grid_item.xml布局文件来为每个子控件设置布局和样式。同时,我们还可以通过调用ImageView和TextView的方法来设置对应的图片和文字。
注意,在实际开发中,我们可能需要根据具体需求对布局文件和Adapter进行自定义。以上代码仅作为一个简单的示例供参考。
阅读全文