zoukankan      html  css  js  c++  java
  • Android可移动控件

    可移动控件:

    效果图:

    获取屏幕的宽高:

    1         DisplayMetrics dm = getResources().getDisplayMetrics();
    2         screenWidth = dm.widthPixels;
    3         screenHeight = dm.heightPixels - 50;
    4         ImageView imageView = (ImageView)findViewById(R.id.spirit_img);
    5         imageView.setOnTouchListener(this);

    onTouch设定: 

     1     @Override
     2     public boolean onTouch(View v, MotionEvent event) {
     3         int action = event.getAction();
     4         switch (action){
     5             case MotionEvent.ACTION_DOWN:
     6                 lastX = (int) event.getRawX();
     7                 lastY = (int) event.getRawY();
     8                 break;
     9             case MotionEvent.ACTION_MOVE:
    10                 int dx =(int)event.getRawX() - lastX;
    11                 int dy =(int)event.getRawY() - lastY;
    12                 int left = v.getLeft() + dx;
    13                 int top = v.getTop() + dy;
    14                 int right = v.getRight() + dx;
    15                 int bottom = v.getBottom() + dy;
    16                 if(left < 0){
    17                     left = 0;
    18                     right = left + v.getWidth();
    19                 }
    20                 if(right > screenWidth){
    21                     right = screenWidth;
    22                     left = right - v.getWidth();
    23                 }
    24                 if(top < 0){
    25                     top = 0;
    26                     bottom = top + v.getHeight();
    27                 }
    28                 if(bottom > screenHeight){
    29                     bottom = screenHeight;
    30                     top = bottom - v.getHeight();
    31                 }
    32                 v.layout(left, top, right, bottom);
    33                 lastX = (int) event.getRawX();
    34                 lastY = (int) event.getRawY();
    35                 break;
    36         }
    37         return false;
    38     }

    layout的办法有一个问题,viewgroup里面的其他东西刷新,imageview就会归位。

  • 相关阅读:
    下标处理问题
    C++输入输出流
    gcc和gdb
    B2C、C2C电子商务分析
    转载:java 动态代理学习(Proxy,InvocationHandler)
    Java Web开发中路径问题小结
    64位操作系统IIS降为32 位版本运行处理
    SQL Server 2000/2005 数据库分页
    iBatis简单入门教程
    JAVA中的Class类
  • 原文地址:https://www.cnblogs.com/lfk-dsk/p/4819052.html
Copyright © 2011-2022 走看看