iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >android GridView多选效果的实例代码
  • 333
分享到

android GridView多选效果的实例代码

gridviewAndroid 2022-06-06 10:06:37 333人浏览 八月长安
摘要

具体代码如下: main.xml 代码如下:<LinearLayout xmlns:Android="Http://schemas.android.com/apk/r

具体代码如下:

main.xml

代码如下:
<LinearLayout xmlns:Android="Http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:background="#000000"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    tools:context=".MainActivity" >

   <GridView

       android:layout_width="fill_parent"

       android:layout_height="fill_parent"

       android:id="@+id/grid"

       android:verticalSpacing="3Dp"

       android:horizontalSpacing="3dp"

       android:numColumns="3"

       ></GridView>

</LinearLayout>

item.xml

代码如下:
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >
<ImageView

    android:scaleType="fitXY"

    android:padding="3dp"

    android:layout_height="70dp"

    android:layout_width="70dp"

    android:id="@+id/image_item"

    />

</LinearLayout>


mainActivity.java
代码如下:
package com.imageview;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.AdapterView.OnItemClickListener;


public class MainActivity extends Activity {
private Adpter adpter;
private GridView gridView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
int [] image={R.drawable.dog1,R.drawable.m2,R.drawable.m3,R.drawable.m4,R.drawable.m5,R.drawable.dog2};
adpter=new Adpter(image, this);
gridView=(GridView) findViewById(R.id.grid);
gridView.setAdapter(adpter);
gridView.setOnItemClickListener(new OnItemClickListener() {  
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1,  
                            int position, long arg3) {  
            adpter.chiceState(position);
            }  
    });  
}
}

Adpter.java

代码如下:
package com.imageview;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;

public class Adpter extends BaseAdapter {
private int[] image;
private boolean isChice[];
private Context context;

public Adpter(int[] im, Context context) {
this.image = im;
Log.i("hck", im.length+"lenght");
isChice=new boolean[im.length];
for (int i = 0; i < im.length; i++) {
isChice[i]=false;
}
this.context = context;
}

@Override
public int getCount() {
return image.length;
}

@Override
public Object getItem(int arg0) {
return image[arg0];
}

@Override
public long getItemId(int arg0) {
return arg0;
}

@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
View view = arg1;
GetView getView=null;
if (view == null) {
view = LayoutInflater.from(context).inflate(R.layout.item, null);
getView = new GetView();
getView.imageView=(ImageView) view.findViewById(R.id.image_item);
view.setTag(getView);
} else {
getView = (GetView) view.getTag();
}
getView.imageView.setImageDrawable(getView(arg0));

return view;
}

static class GetView {
ImageView imageView;
}

    //主要就是下面的代码了
private LayerDrawable getView(int post) {

Bitmap bitmap = ((BitmapDrawable)context.getResources().getDrawable(image[post])).getBitmap();
Bitmap bitmap2=null;
LayerDrawable la=null;
if (isChice[post]== true){ 
bitmap2 = BitmapFactory.decodeResource(context.getResources(),
R.drawable.editable_mode_checked_tag);
}
if (bitmap2!=null) {
Drawable[] array = new Drawable[2];
array[0] = new BitmapDrawable(bitmap);
array[1] = new BitmapDrawable(bitmap2);
la= new LayerDrawable(array);
la.setLayerInset(0, 0, 0, 0, 0);   //第几张图离各边的间距
la.setLayerInset(1, 0, 65, 65, 0);
}
else {
Drawable[] array = new Drawable[1];
array[0] = new BitmapDrawable(bitmap);
la= new LayerDrawable(array);
la.setLayerInset(0, 0, 0, 0, 0);
}
return la; // 返回叠加后的图
}
public void chiceState(int post)
{
isChice[post]=isChice[post]==true?false:true;
this.notifyDataSetChanged();
}
}

您可能感兴趣的文章:android ItemTouchHelper实现可拖拽和侧滑的列表的示例代码Android自定义ListView实现仿QQ可拖拽列表功能Android checkbox的listView(多选,全选,反选)具体实现方法Android中ListView + CheckBox实现单选、多选效果Android Recyclerview实现多选,单选,全选,反选,批量删除的功能Android的ListView多选删除操作实现代码Android中创建对话框(确定取消对话框、单选对话框、多选对话框)实例代码Android使用AlertDialog实现的信息列表单选、多选对话框功能Android自定义控件实现可多选课程日历CalendarViewAndroid实现可拖拽列表和多选功能


--结束END--

本文标题: android GridView多选效果的实例代码

本文链接: https://www.lsjlt.com/news/27583.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作