我有一個非常簡單的Gallery
,我用它以2秒的間隔滾動瀏覽一些圖片。我的問題:如何讓這個畫廊「無限」,所以第一張照片在最後一張之後再次出現?創建無限滾動圖庫查看
注意
- 我所知道的是畫廊聲稱不贊成
- 我沒有進行任何優化,以我的代碼,但因爲這只是在高快速測試的事實高端平板電腦雖然您對優化建議,也感謝
主營:
public class MainActivity extends Activity {
private Gallery ga;
private Runnable r = null;
private Handler mHandler = null;
private MediaPlayer mp;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
setUpGallery();
mHandler = new Handler();
r = new Runnable() {
public void run() {
mHandler.postDelayed(r, 2000);
ga.onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, null);
}
};
r.run();
}
private void setUpGallery() {
ga = (Gallery) findViewById(R.id.gallery);
ga.setAdapter(new ImageAdapter(this));
mp = MediaPlayer.create(getApplicationContext(), R.raw.you);
mp.start();
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.reset();
mp.release();
}
});
}
適配器:
public class ImageAdapter extends BaseAdapter {
private int[] pics = { R.drawable.s1, R.drawable.s2, R.drawable.s3,
R.drawable.s4, R.drawable.s5, R.drawable.s6, R.drawable.s7,
R.drawable.s8, R.drawable.s9, R.drawable.s10, R.drawable.s11,
R.drawable.s12, R.drawable.s13, R.drawable.s14 };
private Context ctx;
public ImageAdapter(Context c) {
ctx = c;
}
@Override
public int getCount() {
return pics.length;
}
@Override
public Object getItem(int arg0) {
return arg0;
}
@Override
public long getItemId(int arg0) {
return arg0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = new ViewHolder();
holder.img = new ImageView(ctx);
Bitmap bmp = BitmapFactory.decodeResource(ctx.getResources(), pics[position]);
holder.img.setImageBitmap(ImageHelper.getRoundedCornerBitmap(bmp, 10));
return holder.img;
}
static class ViewHolder {
public ViewHolder() {
}
ImageView img;
}
}
https://github.com/commonsguy/cwac-endless。可以使用這個。 – Raghunandan 2013-03-08 13:14:00