android 拖拉控件

来源:互联网 发布:python .shift 编辑:程序博客网 时间:2024/05/30 23:30

最近在研究一个类似屏保开锁的一个拖拉控件的activity,查网上的资料,在github找到一个很炫的,可是实在是不知道怎么用啊,所以就自己简单的做了一个,下面是源代码,很简单,视觉效果没那么好

这是MianActivity:

public class MainActivity extends Activity {ImageView basketball;ImageView circle;TextView arowleft,arowright,player_login,coach_login;boolean isLogin=false;int x,y;//Imageview原来的位置    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);//全屏显示        setContentView(R.layout.activity_main);        basketball=(ImageView)findViewById(R.id.basketball);        arowleft=(TextView)findViewById(R.id.arowleft);        arowright=(TextView)findViewById(R.id.arowright);        circle=(ImageView)findViewById(R.id.circle);        player_login=(TextView)findViewById(R.id.player_login);        coach_login=(TextView)findViewById(R.id.coach_login);        basketball.setOnTouchListener(moveListener);   //设置touch监听    }    private OnTouchListener moveListener=new OnTouchListener() {int lastX,lastY;@Overridepublic boolean onTouch(View v, MotionEvent e) {// TODO Auto-generated method stubswitch (e.getAction()){case MotionEvent.ACTION_DOWN:coach_login.setVisibility(View.VISIBLE);player_login.setVisibility(View.VISIBLE);circle.setVisibility(View.VISIBLE);arowleft.setVisibility(View.VISIBLE);arowright.setVisibility(View.VISIBLE);lastX=(int)e.getRawX();lastY=(int)e.getRawY();x=(int)e.getRawX();y=(int)e.getRawY();basketball.setImageResource(R.drawable.basketball_light);break;case MotionEvent.ACTION_MOVE:int distancX=(int)e.getRawX() - x;//计算离开原来位置的距离int dx = (int) e.getRawX() - lastX;                  int dy = (int) e.getRawY() - lastY;                int left = v.getLeft() + dx;                  int top = v.getTop();                  int right = v.getRight() + dx;                int bottom = v.getBottom();                if(distancX>150||!isLogin)     //当移动到指定的位置就让对应的Textview变色                {                coach_login.setTextColor(Color.YELLOW);                arowright.setTextColor(Color.YELLOW);                isLogin=true;                }else if(isLogin||distancX<150||distancX>0){                coach_login.setTextColor(Color.WHITE);                arowright.setTextColor(Color.WHITE);                }                if(distancX<-150||!isLogin)                {                player_login.setTextColor(Color.YELLOW);                arowleft.setTextColor(Color.YELLOW);                isLogin=true;                }else if(distancX>-150||distancX<0)                {                player_login.setTextColor(Color.WHITE);                arowleft.setTextColor(Color.WHITE);                }                v.layout(left, top, right, bottom);//不断重新设置位置,达到移动的效果                lastX = (int) e.getRawX();                  lastY = (int) e.getRawY(); break;case MotionEvent.ACTION_UP:coach_login.setVisibility(View.GONE);//将控件还原player_login.setVisibility(View.GONE);circle.setVisibility(View.GONE);arowleft.setVisibility(View.GONE);arowright.setVisibility(View.GONE);basketball.setImageResource(R.drawable.basketball);player_login.setTextColor(Color.WHITE);arowleft.setTextColor(Color.WHITE);coach_login.setTextColor(Color.WHITE);arowright.setTextColor(Color.WHITE);break;}return true;}};    }

这是布局文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@drawable/login"    android:orientation="vertical"    tools:context="com.guigu.yxp.guigubsktball.MainActivity" >    <TextView        android:id="@+id/textView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:layout_marginTop="20dp"        android:text="硅谷篮球训练营"        android:textColor="#BFBFBF"        android:textSize="30sp" />        <ImageView        android:visibility="gone"        android:id="@+id/circle"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:layout_centerHorizontal="true"        android:layout_marginBottom="50dp"        android:src="@drawable/circle" />    <TextView        android:visibility="gone"        android:id="@+id/player_login"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:layout_marginBottom="140dp"        android:layout_toLeftOf="@id/circle"        android:text="球员登陆"        android:textColor="#fff"        android:textSize="20sp" />    <TextView        android:visibility="gone"        android:id="@+id/coach_login"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:layout_marginBottom="140dp"        android:layout_toRightOf="@id/circle"        android:text="教练登陆"        android:textColor="#fff"        android:textSize="20sp" />    <TextView        android:visibility="gone"        android:id="@+id/arowleft"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignBaseline="@+id/arowright"        android:layout_alignBottom="@+id/arowright"        android:layout_alignLeft="@+id/textView1"        android:text="@string/arowleft"        android:textColor="#fff"        android:textSize="20sp" />    <TextView        android:visibility="gone"        android:id="@+id/arowright"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:layout_marginBottom="150dp"        android:layout_alignRight="@+id/textView1"        android:text="@string/arowright"        android:textColor="#fff"        android:textSize="20sp" />        <ImageView        android:id="@+id/basketball"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:layout_centerHorizontal="true"        android:layout_marginBottom="135dp"        android:src="@drawable/basketball"        /></RelativeLayout>



0 0
原创粉丝点击