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