GridView组件怎么中Android中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
首先是布局文件: 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>
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。