Android开发之组件GridView简单使用方法示例
作者:水中鱼之1999 时间:2022-11-19 09:35:05
本文实例讲述了Android开发之组件GridView简单使用方法。分享给大家供大家参考,具体如下:
案例:简单的图片浏览器,保存图片到相册
保存图片到相册 方法代码:https://www.jb51.net/article/158668.htm
废话不多说先上效果;
具体实现:
首先是布局文件: 1.一个GridView(展示所有的图片) 2.一个ImageView(放选中的图片)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<!--定义一个GridView组件-->
<GridView
android:id="@+id/grid01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:horizontalSpacing="1pt"
android:verticalSpacing="1pt"
android:numColumns="3"
android:gravity="center"/>
<!--定义一个ImageView组件-->
<ImageView
android:id="@+id/image_view"
android:layout_width="240dp"
android:layout_height="240dp"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
然后是点击事件的设置:
其中arry_list只有一个ImageView放图片 代码下面给出
public class MainActivity extends Activity {
private GridView gridView;
//定义字符串数组作为提示的文本
private ImageView imageView;
private int[] photoId = new int[]{
R.drawable.huangjindiao, R.drawable.piaopiao,
R.drawable.xiaochouyu, R.drawable.paodangyu,
R.drawable.addphoto, R.drawable.huangjinxiahu
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建一个list对象,list对象的元素是Map
List<Map<String,Object>> listItems = new ArrayList<Map<String,Object>>();
for (int i = 0 ; i < photoId.length ; i ++ ){
Map<String,Object> photolist = new HashMap<String, Object>();
photolist.put("image",photoId[i]);
listItems.add(photolist);
}
//获取图片的imageView
imageView = (ImageView) findViewById(R.id.image_view);
//创建一个SimpleAdapter
SimpleAdapter simpleAdapter = new SimpleAdapter(this,listItems,
//arry_list只有一个ImageView放图片 代码下面给出
R.layout.array_list,
new String[]{"image"}, new int[]{R.id.image});
gridView = (GridView) findViewById(R.id.grid01);
//为gridview设置adapter
gridView.setAdapter(simpleAdapter);
//添加列表项中被选中的 *
gridView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//显示当前被选中的图片
imageView.setImageResource(photoId[position]);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
//添加列表中被单击的 *
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//显示被单击的图片
imageView.setImageResource(photoId[position]);
}
});
//点击图片保存
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String[] PERMISSIONS = {
"android.permission.READ_EXTERNAL_STORAGE",
"android.permission.WRITE_EXTERNAL_STORAGE" };
//检测是否有写的权限
int permission = ContextCompat.checkSelfPermission(MainActivity.this,
"android.permission.WRITE_EXTERNAL_STORAGE");
if (permission != PackageManager.PERMISSION_GRANTED) {
// 没有写的权限,去申请写的权限,会弹出对话框
ActivityCompat.requestPermissions(MainActivity.this, PERMISSIONS,1);
}
try {
//创建savephoto类保存图片
SavePhoto savePhoto = new SavePhoto(MainActivity.this);
savePhoto.SaveBitmapFromView(imageView);
} catch (ParseException e) {
e.printStackTrace();
}
}
});
}
}
值得注意的一点:array_list:
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/image"
android:layout_width="100dp"
android:layout_height="100dp"
android:scaleType="fitXY">
</ImageView>
希望本文所述对大家Android程序设计有所帮助。
来源:https://blog.csdn.net/qq_43377749/article/details/84325754
标签:Android,组件,GridView
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java Spring框架简介与Spring IOC详解
2021-08-06 03:05:56
![](https://img.aspxhome.com/file/2023/6/96056_0s.png)
Java实现24点小游戏
2023-07-26 07:34:55
![](https://img.aspxhome.com/file/2023/6/63336_0s.png)
详解基于Spring Cloud几行配置完成单点登录开发
2023-07-06 19:14:11
Android系列---JSON数据解析的实例
2022-07-04 19:52:50
![](https://img.aspxhome.com/file/2023/0/123370_0s.gif)
Java实现最小生成树算法详解
2023-11-25 04:51:22
![](https://img.aspxhome.com/file/2023/8/59678_0s.png)
C#实现根据数字序号输出星期几的简单实例
2022-01-23 22:13:56
Java命名规则详细总结
2023-11-14 12:20:55
java编程实现优先队列的二叉堆代码分享
2022-11-13 15:32:13
Elasticsearch学习之Terms set 查询
2021-12-01 01:52:19
C# 中使用正则表达式匹配字符的含义
2023-11-19 02:59:38
Android中oncreate中获得控件高度或宽度的实现方法
2023-09-27 05:32:12
c#开发cad预览图块步骤详解
2022-12-30 10:49:07
![](https://img.aspxhome.com/file/2023/7/67547_0s.jpg)
Android自定义轮播图效果
2022-10-27 06:31:26
Unity工具类之生成文本验证码
2021-06-21 03:38:42
Java创建子线程的两种方法
2023-11-24 07:00:05
Android 开发使用PopupWindow实现弹出警告框的复用类示例
2022-04-07 03:43:42
![](https://img.aspxhome.com/file/2023/5/138855_0s.png)
MyBatis中PageHelper不生效的解决方案
2022-10-23 11:46:47
详解maven的setting配置文件中mirror和repository的区别
2022-03-19 11:56:42
![](https://img.aspxhome.com/file/2023/2/83112_0s.jpg)
Java网络编程实现的简单端口扫描器示例
2022-04-17 09:59:18
java用接口、多态、继承、类计算三角形和矩形周长及面积的方法
2021-10-24 22:15:46