0

一度に1HorizontalScrollViewつの中央のみを表示TextViewし、ユーザーがスクロール/スワイプすると、彼は/彼女は次のテキストにのみ移動できるようになり (スクロール/スワイプの速度に関係なく)、その時点で表示されているテキストに対応する別の画像を表示できます。HorizontalScrollViewTextViewHorizontalScrollView

これは、ユーザーが「2 番目のビュー」にいて、「4 番目のビュー」を見たい場合、「3 番目のビュー」も見なければならないことを意味します。

私はAndroidが初めてです。親切に助けてください!

4

2 に答える 2

0

ありがとう!!いろいろ試した後。私は解決策にたどり着きました.ギャラリーウィジェットを使用し、目的に合わせてカスタマイズしました.

//カスタマイズされたギャラリー クラス: 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;

}

それでおしまい!!:)

于 2013-07-26T06:04:37.917 に答える