大家好,依旧是挤出一点时间写了一个简单的Gallery控件的实现,代码非常适合初学者学习,简单明了。
先看一下具体的效果图吧
布局文件仅仅添加一个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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="#FFDEAD"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Gallery
android:id="@+id/gallery"
android:layout_below="@id/textview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
代码部分
package com.icedcap.gallerytest;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.TextView;
import com.icedcap.gallarytest.R;
public class MainActivity extends Activity {
private Gallery gallery;
private TextView tv;
private int[] images = { R.drawable.image1, R.drawable.image2,
R.drawable.image3, R.drawable.image4, R.drawable.image5 };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
// 添加item点击监听将触发消息显示到textview控件上
gallery.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
tv.setText("位置" + position);
}
});
}
private void initView() {
gallery = (Gallery) findViewById(R.id.gallery);
tv = (TextView) findViewById(R.id.textview);
gallery.setAdapter(new ImageAdapter());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
class ImageAdapter extends BaseAdapter {
@Override
public int getCount() {
return images.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView iv = new ImageView(MainActivity.this);
iv.setBackgroundResource(images[position]);
iv.setAdjustViewBounds(true);
return iv;
}
}
}
最后附上源码下载地址以供交流: http://download.csdn.net/detail/icedcap/6988255