1

私は最近、あなたの Facebook スタイルの Android スライダーを使用しています。スライダーが反対側からスライドするようにする必要があります。したがって、最初は左から右にスライドするのではなく、右から左に移動する必要があります。

どうやって私のためにこれをしたか説明してもらえますか?

ありがとう

よろしく、フィリップ

4

2 に答える 2

1

以下の手順に従ってください。

1)水平スクロールビューを作成します。

2) 2 つのビューを動的に追加します。

3) Layout Inflater を使用して両方のビューを膨張させます。

4)次に、子 0 の代わりに子 1 を初期ビューとして設定します。これにより、左から右ではなく、右から左に移動するように見えます。

これは、Fb のようなレイアウトに関する会話です。

レイアウトアニメーション Android[Facebook]

そしてもう一つ、

AndroidでFacebookのアプリの新しいメニューを作成するには?

于 2012-06-13T09:59:46.117 に答える
0

あなたはこれを試すことができます......

 public class AnimateActivity extends Activity {
/** Called when the activity is first created. */

private int oldLeft;
private int oldTop;
private int newBottom;
private int newTop;
private int screenHeight;
private int animToPostion;
private Display display;
private boolean menuOpen = true;
private AnimationListener AL;
LinearLayout fakelayout;
LinearLayout bottomlayout;
Button home;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    fakelayout=(LinearLayout)findViewById(R.id.fakelayout);
    bottomlayout=(LinearLayout)findViewById(R.id.bottomlayout);
    home=(Button)findViewById(R.id.home);

    display = getWindowManager().getDefaultDisplay();
    screenHeight = display.getHeight();

    int calcAnimationPosition = (screenHeight /2);
    animToPostion = screenHeight - calcAnimationPosition;          
    newBottom = animToPostion;
    if (menuOpen == true) {

        RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(
                 RelativeLayout.LayoutParams.FILL_PARENT,animToPostion);
        fakelayout.setLayoutParams(param);

    }
    home.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            if(menuOpen){

                animslideUp();
                menuOpen = false;
            }else{

                animSlideDown();
                menuOpen = true;
            }
        }
    });


    // Animation

    AL = new AnimationListener() {

        public void onAnimationEnd(Animation arg0) {
            // TODO Auto-generated method stub
            if (menuOpen == false) {         

                Log.i("onAnimationEnd", "menu is open now");
                bottomlayout.layout(0, 0,
                         bottomlayout.getMeasuredWidth(), bottomlayout.getMeasuredHeight());

            } else if (menuOpen == true) {
                fakelayout.setVisibility(View.VISIBLE);

            }
        }

        public void onAnimationRepeat(Animation arg0) {
            // TODO Auto-generated method stub

        }

        public void onAnimationStart(Animation arg0) {
            // TODO Auto-generated method stub

        }};



}
public void animslideUp() {

    fakelayout.setVisibility(View.GONE);
    Log.e("in animslideUp", "true");

    oldTop=bottomlayout.getTop();
    newTop =0;

    Log.w("oldTop",""+oldTop);
    Log.w("newTop",""+newTop);

    TranslateAnimation slideUp = new TranslateAnimation(0, 0, oldTop, newTop);
    slideUp.setDuration(500);
    slideUp.setFillEnabled(true);
    slideUp.setAnimationListener(AL);
    bottomlayout.startAnimation(slideUp);

}                          

public void animSlideDown() {



    Log.d("in animslideDown", "true");


    oldTop=bottomlayout.getTop();
    newTop = animToPostion;
    Log.w("oldTop",""+oldTop);
    Log.w("newTop",""+newTop);

    TranslateAnimation slideDown = new TranslateAnimation(0, 0, oldTop,newTop);
    slideDown.setDuration(500);
    slideDown.setFillEnabled(true);
    slideDown.setAnimationListener(AL);
    bottomlayout.startAnimation(slideDown);

}
    }

そのための XML は次のとおりです。

        <?xml version="1.0" encoding="utf-8"?>
            <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                   android:layout_width="fill_parent"
                   android:layout_height="fill_parent"
                   android:orientation="vertical" >

                        <LinearLayout
                        android:id="@+id/fakelayout"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:orientation="vertical" 
                        android:visibility="visible"
                        </LinearLayout>

<LinearLayout
    android:id="@+id/bottomlayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/white"
    android:layout_below="@+id/fakelayout"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:background="@drawable/topbar"
        android:orientation="horizontal"
         >
        <Button
            android:id="@+id/home" 
            android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/home"/>
    </LinearLayout>
</LinearLayout>

    </RelativeLayout>
于 2012-06-14T06:10:05.827 に答える