Gallery主要是用来对相片的管理,可以实现在主界面拖动图片,从而实现图片的移动,方便用户的查看。
效果图如下:
当鼠标放在图片上面时,拖动图片,可以实现图片的移动。
现在,首先来完成布局文件.
<RelativeLayout 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:gravity="center_vertical">
<Gallery
android:id="@+id/ga"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:spacing="10dp"
android:unselectedAlpha="1"/>
</RelativeLayout>
布局文件很简单,只是在xml文件中放置了一个Gallery控件。
接下来完成主要功能代码。
package com.example.gallery;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
public class MainActivity extends ActionBarActivity {
private Gallery gallery;
private int[] imageId = new int[]{R.drawable.a,R.drawable.b,R.drawable.c};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gallery = (Gallery) this.findViewById(R.id.ga);
BaseAdapter ba = new BaseAdapter() {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = new ImageView(getApplicationContext());
imageView.setImageResource(imageId[position]);
//** 设置比例类型
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setLayoutParams(new Gallery.LayoutParams(188,255));
return imageView;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public Object getItem(int position) {
return imageId[position];
}
@Override
public int getCount() {
return imageId.length;
}
};
gallery.setAdapter(ba);
gallery.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Gallery gl = (Gallery) findViewById(R.id.ga);
gl.setSelection(position);
}
});
}
}
跟之前所说的控件类似,得到该控件的引用后,然后为控件添加数据适配器。当单击每一个项目时,可以实现拖动功能。