标签:android style blog http io color ar os java
生活就像海洋,只有意志坚强的人,才能到达彼岸。 —— 马克思
本讲内容:Gallery 画廊
Gallery是一个内部元素可以水平滚动,并且可以把当前选择的子元素定位在它中心的布局组件。
我们通过一个例子感受一下,代码的讲解都写在注释里了
下面是res/layout/activity_main.xml 布局文件:
<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="com.example.text.MainActivity$PlaceholderFragment" >
<ImageView
android:id="@+id/image"
android:layout_width="580px"
android:layout_height="750px"
android:src="@drawable/c3"
android:layout_gravity="center"/>
<Gallery
android:id="@+id/gallery"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:spacing="3dp"
android:layout_gravity="bottom"/>
</LinearLayout>android:spacing="3dp"属性用于指定Gallery列表图片之间的间隔为3dp。
下面是MainActivity.java主界面文件:
public class MainActivity extends Activity{
private Gallery gallery;
private ImageView image;
//图片数组
private int[] p={R.drawable.c1,R.drawable.c2,R.drawable.c3,R.drawable.c4,R.drawable.c5,R.drawable.c6};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gallery=(Gallery) findViewById(R.id.gallery);
image=(ImageView) findViewById(R.id.image);
MyAdapter adapter = new MyAdapter(this);
gallery.setAdapter(adapter);
gallery.setOnItemClickListener(new Gallery.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
Toast.makeText(MainActivity.this, "" + position,Toast.LENGTH_LONG).show();
//设置背景部分的ImageView显示当前Item的图片
image.setImageResource(p[position]);
}
});
}
class MyAdapter extends BaseAdapter{
//用来接收传递过来的Context上下文对象
private Context context;
public MyAdapter(Context context){
this.context = context;
}
@Override
public int getCount() {
return p.length;//返回图片数组大小
}
@Override
public Object getItem(int position) {
return position;//根据选中项返回索引位置
}
@Override
public long getItemId(int position) {
return position; //根据选中项id返回索引位置
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView img=new ImageView(context);
img.setImageResource(p[position]);//用于将MyAdapter中的指定位置图片资源加载到img中
img.setScaleType(ImageView.ScaleType.FIT_XY);//用于设置imageView中图片的缩放显示格式。
img.setLayoutParams(new Gallery.LayoutParams(130, 180));//用于设置Gallery中图片的显示大小
return img;
}
}
}
本讲到这里,谢谢大家!
标签:android style blog http io color ar os java
原文地址:http://blog.csdn.net/liguojin1230/article/details/40718203