4

レイアウトのマージンを変更してドラッグのように Facebook を実装しようとしましたが、ビューで無効化を呼び出しても、それらは常に跡を残します

Android / ios の Facebook はそれを行います、どうやってそれを行ったのだろうか、どこでも画像だけがドラッグ アンド ドロップされています

このようなものを実装しようとしていますが、アプリにトレイルが残ります

package com.example.dragdemo;

@SuppressLint({ "NewApi", "ParserError", "ParserError" })
public class MainActivity extends Activity {

TextView x;
TouchExampleView tex;
Context ctx=MainActivity.this;

private float mPosX=0;
private float mPosY=0;

private float mLastTouchX;
private float mLastTouchY;

LinearLayout redLinear;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    tex=new TouchExampleView(ctx);

    redLinear=(LinearLayout)findViewById(R.id.newLinear);
    redLinear.setOnTouchListener(new OnTouchListener() {

        public boolean onTouch(View v, MotionEvent event) {

            //Log.e("action is ", event.getAction()+"");

            if(event.getAction()==MotionEvent.ACTION_MOVE)
            {
                //Toast.makeText(ctx, "comes in move", Toast.LENGTH_SHORT).show();

                if(((mPosX-(int) event.getX())>2002)||((mPosX-(int) event.getX())<2002)){

                    mPosX=(int) event.getX();
                    RelativeLayout.LayoutParams rl=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
                    //rl.addRule(RelativeLayout., anchor)

                    rl.setMargins((int) event.getX(), 0, 0, 0);

                    redLinear.setLayoutParams(rl);
                    redLinear.invalidate();

                }
            }
            return true;
        }
    });

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}
}
4

1 に答える 1

0

Jeremy Feinstein のスライド メニュー ライブラリは、Android 用の Facebook アプリ スタイル メニューの優れた実装です。あなたが言及したトレイルの問題はありません。ここで見つけることができます:

github のSlidingMenu

于 2012-11-15T13:34:46.610 に答える