我做了个Gallery,想用ImageView做索引,就跟手机网站的那些新闻一样,假如有五张图片,就建5个ImageView做索引,点击第一个ImageView,Gallery就从当时的位置滑动到第一张图片。不是用setSelection。求各位牛人帮帮忙。Gallery

解决方案 »

  1.   

    没看懂,你图上那个东西不是ViewPager做的吗
      

  2.   

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >    <com.alex.gallery_02.MyGallery
            android:id="@+id/myGallery"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />    <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@id/myGallery"
            android:layout_alignRight="@id/myGallery"
            android:orientation="horizontal" >        <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >            <ImageView
                    android:id="@+id/im1"
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:src="@drawable/ad11" />            <ImageView
                    android:id="@+id/im12"
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:src="@drawable/ad12" />
            </RelativeLayout>       
            
             <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >            <ImageView
                    android:id="@+id/im2"
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:src="@drawable/ad21" />            <ImageView
                    android:id="@+id/im22"
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:src="@drawable/ad22" />
            </RelativeLayout>
          
            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >            <ImageView
                    android:id="@+id/im3"
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:src="@drawable/ad31" />            <ImageView
                    android:id="@+id/im32"
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:src="@drawable/ad32" />
            </RelativeLayout>
           
            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >            <ImageView
                    android:id="@+id/im4"
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:src="@drawable/ad41" />            <ImageView
                    android:id="@+id/im42"
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:src="@drawable/ad42" />
            </RelativeLayout>
            
            
            
            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >            <ImageView
                    android:id="@+id/im5"
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:src="@drawable/ad51" />            <ImageView
                    android:id="@+id/im52"
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:src="@drawable/ad52" />
            </RelativeLayout>
                  
        </LinearLayout></RelativeLayout>
      

  3.   

    public class MainActivity extends Activity  {
    private MyGallery myGallery;
    private int pre = 0;
        private int prev = 0;
    private int index = 0;
    private ImageView[][] ims = new ImageView[5][2];
    //声明图片数组
    public static int[] ads ={
    R.drawable.ad11,
    R.drawable.ad21,
    R.drawable.ad31,
    R.drawable.ad41,
    R.drawable.ad51,
    };
    public static int[] ads1 ={
    R.drawable.ad12,
    R.drawable.ad22,
    R.drawable.ad32,
    R.drawable.ad42,
    R.drawable.ad52,
    };
    public static int[] resIds = {
    R.drawable.a,
    R.drawable.b,
    R.drawable.c,
    R.drawable.d,
    R.drawable.e,
    };    private TimerTask task = new TimerTask() {  
            @Override 
            public void run() {  
                Message message = new Message();  
                message.what = 2;
                handler.sendMessage(message);  
            }  
        };  
       
        private Handler handler = new Handler() {  
            @Override 
            public void handleMessage(Message msg) {  
                super.handleMessage(msg); 
                int position = myGallery.getSelectedItemPosition();
                index = position%resIds.length;
                switch (msg.what) {  
                case 2:
                 for(int i=0;i<ims.length;i++)
                 {
                 if(i==index)
                 {
                 ims[i][0].setVisibility(View.INVISIBLE);
                 ims[i][1].setVisibility(View.VISIBLE);
                 }
                 else
                 {
                 ims[i][0].setVisibility(View.VISIBLE);
                 ims[i][1].setVisibility(View.INVISIBLE);
                 }
                 }
                    break;
                default:  
                    break;  
                }  
            }  
        }; 
    public class ImageAdapter extends BaseAdapter{
    private Context context; 
    private int count;
        public ImageAdapter(Context context) {   
            // TODO Auto-generated constructor stub   
            this.context = context;   
        } 
        @Override  
        public int getCount() {    
            return Integer.MAX_VALUE;   
        }   
        @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 imageView= new ImageView(context);
            if (position < 0) {  
                position = position + resIds.length;  
            }
        imageView.setImageResource(resIds[position % resIds.length]);   
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);   
        imageView.setLayoutParams(new Gallery.LayoutParams(150, 120));
            return imageView;   
        }   
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    myGallery = (MyGallery)findViewById(R.id.myGallery);
    ImageAdapter adapter = new ImageAdapter(this); 
    myGallery.setAdapter(adapter); 
    myGallery.setSelection(Integer.MAX_VALUE/2+2);
    myGallery.setUnselectedAlpha(1.1f);
    myGallery.setSpacing(30);
    ims[0][0] = (ImageView)findViewById(R.id.im1);
    ims[0][1] = (ImageView)findViewById(R.id.im12);
    ims[1][0] = (ImageView)findViewById(R.id.im2);
    ims[1][1] = (ImageView)findViewById(R.id.im22);
    ims[2][0] = (ImageView)findViewById(R.id.im3);
    ims[2][1] = (ImageView)findViewById(R.id.im32);
    ims[3][0] = (ImageView)findViewById(R.id.im4);
    ims[3][1] = (ImageView)findViewById(R.id.im42);
    ims[4][0] = (ImageView)findViewById(R.id.im5);
    ims[4][1] = (ImageView)findViewById(R.id.im52);
    for(int i=0;i<ims.length;i++)
    {
    ims[i][0].setOnClickListener(new ImageListener());
    }
        Timer timer = new Timer();  
        timer.schedule(task,0,200); 
    }
      

  4.   

    我想问的是ImageView的点击事件监听器怎么写。