ありがとう!!いろいろ試した後。私は解決策にたどり着きました.ギャラリーウィジェットを使用し、目的に合わせてカスタマイズしました.
//カスタマイズされたギャラリー クラス: SlowGallery.java
public class SlowGallery extends Gallery {
public SlowGallery(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
}
public SlowGallery(Context context, AttributeSet attrs)
{
super(context, attrs);
}
public SlowGallery(Context context)
{
super(context);
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
{
//limit the max speed in either direction
if (velocityX > 400.0f)
{
velocityX = 400.0f;
}
else if(velocityX < 400.0f)
{
velocityX = -400.0f;
}
return super.onFling(e1, e2, velocityX, velocityY);
//return false;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
{
return false;
}
}
メインのアクティビティ クラスで、oncreate 関数に次のコードを追加します。
Gallery gallery = (Gallery) findViewById(R.id.gallery);
gallery.setAdapter(new ImageAdapter(this));
次に、ImageAdapter クラスを次のように作成します。
public class ImageAdapter extends BaseAdapter {
int mGalleryItemBackground;
private Context mContext;
private String[] mText = {
"View 1","View 2", "View 3", "View 4"
};
public ImageAdapter(Context c) {
mContext = c;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mText.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
TextView textview = new TextView(mContext); textview.setTextColor(Color.WHITE);
textview.setText(mText[position]);
textview.setFocusable(true);
textview.setTextSize(16);
textview.setLayoutParams(new Gallery.LayoutParams(230, 100));
textview.setBackgroundResource(mGalleryItemBackground);
changePosition(position, textview);
return textview;
}
それでおしまい!!:)