【问题标题】:Sliding lock screen滑动锁屏
【发布时间】:2013-12-25 06:58:46
【问题描述】:

使用自定义锁进行挖掘以锁定和解锁设备,与Start 应用程序相同,到目前为止,我在 Google 上遇到了一些问题,但没有运气,即使我发现了一个类似的问题 this,但没有希望。

但我尝试使用setOnTouchListener 进行滑动,但它的故障和滑动不像Start app 那样顺畅。

注意:我的代码有点类似于Custom Slide to unlock

我只是在寻找与滑动锁定和解锁设备相同的功能。

您的建议很有价值。

【问题讨论】:

    标签: android android-sliding


    【解决方案1】:

    哇,我很高兴,我自己得到了答案。 这是我的困难代码。

    注意:使用9patch 图像在图像视图中设置

    public class MainActivity extends Activity implements OnTouchListener {
    
    ImageView left,right;
    int leftPosition,rightPosition;
    boolean getSize = false;
    int width;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        left = (ImageView)findViewById(R.id.left);
        right = (ImageView)findViewById(R.id.right);
    
        leftPosition = left.getRight();
        rightPosition = right.getLeft();
    
        width = getWindowManager().getDefaultDisplay().getWidth();
    
        left.setOnTouchListener(new OnTouchListener() {
    
            public boolean onTouch(View v, MotionEvent event) {
                int eid = event.getAction();
                switch (eid) {
                case MotionEvent.ACTION_DOWN:
    
                    if(!getSize)
                    {
                        leftPosition = left.getRight();
                        rightPosition = right.getLeft();
                        getSize =true;
                    }
                    break;
    
                case MotionEvent.ACTION_MOVE:
    
                    RelativeLayout.LayoutParams mParams = (RelativeLayout.LayoutParams) left.getLayoutParams();
                    int x = (int) event.getRawX();
    
                    if (x>leftPosition) 
                        mParams.width = x;
                    left.setLayoutParams(mParams);
                    break;
    
                case MotionEvent.ACTION_UP:
    
                    RelativeLayout.LayoutParams mParam = (RelativeLayout.LayoutParams) left.getLayoutParams();
                    mParam.width = leftPosition;
                    left.setLayoutParams(mParam);
                    break;
    
                default:
                    break;
                }
                return true;
            }
        });
    
    
        right.setOnTouchListener(new OnTouchListener() {
    
            public boolean onTouch(View v, MotionEvent event) {
                int eid = event.getAction();
                switch (eid) {
                case MotionEvent.ACTION_DOWN:
                    break;
    
                case MotionEvent.ACTION_MOVE:
    
                    RelativeLayout.LayoutParams mParams = (RelativeLayout.LayoutParams) right.getLayoutParams();
                    int x = (int) event.getRawX();
    
                    if (x<rightPosition) 
                        mParams.width = width-x;
                    right.setLayoutParams(mParams);
                    break;
    
                case MotionEvent.ACTION_UP:
    
                    RelativeLayout.LayoutParams mParam = (RelativeLayout.LayoutParams) right.getLayoutParams();
                    mParam.width = width - rightPosition;
                    right.setLayoutParams(mParam);
                    break;
                default:
                    break;
                }
                return true;
            }
        });
    }
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        // TODO Auto-generated method stub
        return false;
    }   }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      • 1970-01-01
      • 2017-03-02
      相关资源
      最近更新 更多