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
- android 拖拉控件
- android 拖拉控件
- Android自定义拖拉窗控件
- Android拖拉控件的实现(类似抽屉)
- Android 拖拉控件遇到的问题
- gwt之拖拉控件
- android基础---拖拉与缩放
- android基础---拖拉与缩放
- android 拖拉图片 选中居中
- C# 鼠标拖拉移动窗体控件
- android 拖拉图片 Gallery 用BaseAdapter实现
- android 拖拉图片 Gallery 用SimpleAdater实现
- 【Android开发】图片拖拉功能的实现
- android中图片的拖拉和缩放
- Android:拖拉功能与多点触摸
- C#(DotNET CF 2.0) 模拟WP7的拖拉控件方式
- Swing插件(拖拉控件)-vs4e的简单使用
- 【轉】C# 实现拖拉控件改变位置与大小
- SPI的参考命令集
- PCB走线阻抗的计算
- Binary Tree Zigzag Level Order Traversal
- java中抽象类跟接口的区别
- dedecms
- android 拖拉控件
- 线性时间找第K小的数
- 大数的加法 进位
- iOS开发笔记--图片上传代码
- 空间向量类Vector3的C++实现
- MySql简单语法复习
- Zoj1067
- Java 欧拉工程 第二十七篇【找出为连续数字产生最多质数的二次公式】
- 语音识别基本原理介绍----gmm-hmm中的embedded training (嵌入式训练)