码迷,mamicode.com
首页 > 其他好文 > 详细

第二十四讲:用户界面View之Gallery

时间:2014-11-03 08:59:49      阅读:246      评论:0      收藏:0      [点我收藏+]

标签: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;
		}
	}
}

下面是运行结果:

bubuko.com,布布扣


本讲到这里,谢谢大家!

第二十四讲:用户界面View之Gallery

标签:android   style   blog   http   io   color   ar   os   java   

原文地址:http://blog.csdn.net/liguojin1230/article/details/40718203

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!