当前位置:编程学习 > wap >>

Gallery图片索引

我做了个Gallery,想用ImageView做索引,就跟手机网站的那些新闻一样,假如有五张图片,就建5个ImageView做索引,点击第一个ImageView,Gallery就从当时的位置滑动到第一张图片。不是用setSelection。求各位牛人帮帮忙。 Gallery --------------------编程问答--------------------
就跟这个图的效果一样, --------------------编程问答-------------------- 没看懂,你图上那个东西不是ViewPager做的吗 --------------------编程问答--------------------
引用 2 楼 summersrest 的回复:
没看懂,你图上那个东西不是ViewPager做的吗

<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>

--------------------编程问答-------------------- 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); 
} --------------------编程问答-------------------- 我想问的是ImageView的点击事件监听器怎么写。
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,