zoukankan      html  css  js  c++  java
  • Android之Gallery控件使用

     
       
    Gallery控件, 即Android的图片浏览控件,还是非常好用的,做个小例子说明一下:
    首先是layout file:
     
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <Gallery
        android:id="@+id/gallery"
       android:spacing="5px"
    android:layout_width
    ="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>
    接下来是代码,首先是需要定义一个BaseAdaper的子类来操作控制图片资源,然后在主类中通过Gallery.setAdapter(new ImageAdapter(this));来使用这个控制类。
    package com.zx.galery;
    
    import android.app.Activity;
    import android.content.Context;
    import android.os.Bundle;
    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.Toast;
    import android.widget.AdapterView.OnItemClickListener;
    
    public class GalleryTest extends Activity {
        private Gallery mGallery;
        
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            mGallery = (Gallery)findViewById(R.id.gallery);
            mGallery.setAdapter(new ImageAdapter(this));
            mGallery.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView parent, View v, int position, long id) {
                    Toast.makeText(GalleryTest.this, "" + position, Toast.LENGTH_SHORT).show();
                }
            });
        }
        
        /*
        * class ImageAdapter is used to control gallery source and operation.
        */
        private class ImageAdapter extends BaseAdapter{
            private Context mContext;
            private Integer[] mImage = {
                    R.drawable.sample_0,
                    R.drawable.sample_1,
                    R.drawable.sample_2,
                    R.drawable.sample_3,
                    R.drawable.sample_4,
                    R.drawable.sample_5,
                    R.drawable.sample_6,
                    R.drawable.sample_7
            };
            
            public ImageAdapter(Context c){
                mContext = c;
            }
            @Override
            public int getCount() {
                // TODO Auto-generated method stub
    
                return mImage.length;
            }
    
            @Override
            public Object getItem(int position) {
                // TODO Auto-generated method stub
    
                return position;
            }
    
            @Override
            public long getItemId(int position) {
                // TODO Auto-generated method stub
    
                return position;
            }
    
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                // TODO Auto-generated method stub
    
                ImageView i = new ImageView (mContext);
                i.setImageResource(mImage[position]);
                i.setScaleType(ImageView.ScaleType.FIT_XY);
                i.setLayoutParams(new Gallery.LayoutParams(136, 88));
                
                
                return i;
            }
            
        };
    }
  • 相关阅读:
    delphi调用存储过程
    mysql存储过程中使用事务
    高性能JAVA开发之内存管理
    高效的找出两个List中的不同元素
    The reference to entity "characterEncoding" must end with the ';' delimiter
    Maven的安装、配置及使用入门
    如何在电脑上测试手机网站(全)
    三种常用的js数组去重方法
    oracle ORA-01461 错误 can bind a LONG value only for insert into a LONG column
    windows cmd下netstat查看占用端口号的进程和程序
  • 原文地址:https://www.cnblogs.com/622698abc/p/2723641.html
Copyright © 2011-2022 走看看