Android开发之组件GridView简单使用方法示例
本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Android图形与图像处理技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
相关文章
Android 实现自定义圆形listview功能的实例代码
这篇文章主要介绍了Android 实现自定义圆形listview功能的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-07-07Android利用Paint自定义View实现进度条控件方法示例
这篇文章主要给大家介绍了关于Android利用Paint自定义View实现进度条控件的相关资料,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。2017-11-11
最新评论