Android开发之组件GridView简单使用方法示例

作者:水中鱼之1999 时间:2022-11-19 09:35:05 

本文实例讲述了Android开发之组件GridView简单使用方法。分享给大家供大家参考,具体如下:

案例:简单的图片浏览器,保存图片到相册

保存图片到相册 方法代码:https://www.jb51.net/article/158668.htm

废话不多说先上效果;

Android开发之组件GridView简单使用方法示例

具体实现:

首先是布局文件: 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
0
投稿

猜你喜欢

  • Java Spring框架简介与Spring IOC详解

    2021-08-06 03:05:56
  • Java实现24点小游戏

    2023-07-26 07:34:55
  • 详解基于Spring Cloud几行配置完成单点登录开发

    2023-07-06 19:14:11
  • Android系列---JSON数据解析的实例

    2022-07-04 19:52:50
  • Java实现最小生成树算法详解

    2023-11-25 04:51:22
  • 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
  • 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
  • MyBatis中PageHelper不生效的解决方案

    2022-10-23 11:46:47
  • 详解maven的setting配置文件中mirror和repository的区别

    2022-03-19 11:56:42
  • Java网络编程实现的简单端口扫描器示例

    2022-04-17 09:59:18
  • java用接口、多态、继承、类计算三角形和矩形周长及面积的方法

    2021-10-24 22:15:46
  • asp之家 软件编程 m.aspxhome.com