Android开发之实现手指直接拖动图片移动
Android开发之实现手指直接拖动图片移动
发布时间:2015-06-05 来源:查字典编辑
摘要:一、基础知识:要实现这一效果,需要一个容器来存放Gallrey显示的图片,这里使用一个继承自BaseAdapter类的派生类来装这些图片。我...

一、基础知识:

要实现这一效果,需要一个容器来存放Gallrey显示的图片,这里使用一个继承自BaseAdapter类的派生类来装这些图片。

我们需要监听其事件setOnItemClickListener,从而确定用户当前选中的是哪一张图片。

首先,需要将所有要显示的图片的索引存放在一个int型数组中,然后通过setImageResource方法来设置ImageView要显示的图片资源,最后将

每张图片的ImageView显示在屏幕上。

二、代码展示:

1."main.xml"

[html]

<?xml version="1.0" encoding="utf-8"?>

<Gallery

xmlns:android="/apk/res/android"

android:id="@+id/Gallery01"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>

<?xml version="1.0" encoding="utf-8"?>

<Gallery

xmlns:android="/apk/res/android"

android:id="@+id/Gallery01"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>

2."Activity01.java"

[java] view plaincopyprint?package com.yarin.android.XX;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.AdapterView;

import android.widget.Gallery;

import android.widget.Toast;

import android.widget.AdapterView.OnItemClickListener;

public class Activity01 extends Activity

{

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(yout.main);

//获得Gallery对象

Gallery g = (Gallery) findViewById(R.id.Gallery01);

//添加ImageAdapter给Gallery对象

g.setAdapter(new ImageAdapter(this));

//设置Gallery的背景

g.setBackgroundResource(R.drawable.bg0);

//设置Gallery的事件监听

g.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> parent, View v, int position, long id)

{

Toast.makeText(Activity01.this,"你选择了"+(position+1)+" 号图片",

Toast.LENGTH_SHORT).show();

}

});

}

}

package com.yarin.android.XX;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.AdapterView;

import android.widget.Gallery;

import android.widget.Toast;

import android.widget.AdapterView.OnItemClickListener;

public class Activity01 extends Activity

{

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(yout.main);

//获得Gallery对象

Gallery g = (Gallery) findViewById(R.id.Gallery01);

//添加ImageAdapter给Gallery对象

g.setAdapter(new ImageAdapter(this));

//设置Gallery的背景

g.setBackgroundResource(R.drawable.bg0);

//设置Gallery的事件监听

g.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> parent, View v, int position, long id)

{

Toast.makeText(Activity01.this,"你选择了"+(position+1)+" 号图片",

Toast.LENGTH_SHORT).show();

}

});

}

}

3."ImageAdapter.java"

[java]

package com.yarin.android.XX;

import android.content.Context;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.Gallery;

import android.widget.ImageView;

public class ImageAdapter extends BaseAdapter

{

// 定义Context

private Context mContext;

// 定义整型数组 即图片源

private Integer[] mImageIds =

{

R.drawable.img1,

R.drawable.img2,

R.drawable.img3,

R.drawable.img4,

R.drawable.img5,

R.drawable.img6,

R.drawable.img7,

R.drawable.img8,

};

// 声明 ImageAdapter

public ImageAdapter(Context c)

{

mContext = c;

}

// 获取图片的个数

public int getCount()

{

return mImageIds.length;

}

// 获取图片在库中的位置

public Object getItem(int position)

{

return position;

}

// 获取图片ID

public long getItemId(int position)

{

return position;

}

public View getView(int position, View convertView, ViewGroup parent)

{

ImageView imageview = new ImageView(mContext);

// 给ImageView设置资源

imageview.setImageResource(mImageIds[position]);

// 设置布局 图片120×120显示

imageview.setLayoutParams(new youtParams(120, 120));

// 设置显示比例类型

imageview.setScaleType(ImageView.ScaleType.FIT_CENTER);

return imageview;

}

}

package com.yarin.android.XX;

import android.content.Context;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.Gallery;

import android.widget.ImageView;

public class ImageAdapter extends BaseAdapter

{

// 定义Context

private Context mContext;

// 定义整型数组 即图片源

private Integer[] mImageIds =

{

R.drawable.img1,

R.drawable.img2,

R.drawable.img3,

R.drawable.img4,

R.drawable.img5,

R.drawable.img6,

R.drawable.img7,

R.drawable.img8,

};

// 声明 ImageAdapter

public ImageAdapter(Context c)

{

mContext = c;

}

// 获取图片的个数

public int getCount()

{

return mImageIds.length;

}

// 获取图片在库中的位置

public Object getItem(int position)

{

return position;

}

// 获取图片ID

public long getItemId(int position)

{

return position;

}

public View getView(int position, View convertView, ViewGroup parent)

{

ImageView imageview = new ImageView(mContext);

// 给ImageView设置资源

imageview.setImageResource(mImageIds[position]);

// 设置布局 图片120×120显示

imageview.setLayoutParams(new youtParams(120, 120));

// 设置显示比例类型

imageview.setScaleType(ImageView.ScaleType.FIT_CENTER);

return imageview;

}

}

三、效果展示:

Android开发之实现手指直接拖动图片移动1

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新安卓软件开发学习
热门安卓软件开发学习
编程开发子分类