android 拖拉控件

最近在研究一个类似屏保开锁的一个拖拉控件的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;
		
		@Override
		public boolean onTouch(View v, MotionEvent e) {
			// TODO Auto-generated method stub
			switch (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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值