登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

方向识别与控制的自定义View

[复制链接]
来自: MrlLee 分类: Android精品源码 上传时间: 2016-10-12 10:48:24
Tag:android content version Failed commit
立即下载
收藏

项目介绍:










这是一个可识别上滑,下滑,左滑,右滑,方向识别与控制的自定义View。核心类就一个:DirectionControlView.java



使用方式如下:



1,把DirectionControlView.java拷贝到你的工程里,布局文件中直接使用:



    <com.zhan.directioncontrolview.widget.DirectionControlView
android:id="@+id/main_dcv"
android:background="#41E194"
android:layout_width="match_parent"
android:layout_height="match_parent" />



2,找到DirectionControlView对象,设置状态监听。



        mDirectionControlView = (DirectionControlView) findViewById(R.id.main_dcv);
mDirectionControlView.setControlStateListener(this);

@Override
public void singleClick() {
//单击
}

@Override
public void longClick() {
//长按
}

@Override
public void doubleClick() {
//双击
}

@Override
public void leftSlide() {
//左滑
}

@Override
public void rightSlide() {
//右滑
}

@Override
public void upSlide() {
//上滑
}

@Override
public void downSlide() {
//下滑
}



现在可以正常使用DirectionControlView了。






注意,上下左右滑动,在这里只做了最简单的判断和处理,方向识别核心代码如下:



        @Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
Log.i(TAG, "onFling");

float offsetX = e1.getX() - e2.getX();//X方向偏移量
float offsetY = e1.getY() - e2.getY();//Y方向偏移量

if (Math.abs(offsetX) > Math.abs(offsetY)) {//左滑或者右滑
if (e1.getX() - e2.getX() > MIN_OFFSET_VALUE) {
if (mDirectionControlListener != null) {//左滑
mDirectionControlListener.leftSlide();
}
} else {
if (mDirectionControlListener != null) {//右滑
mDirectionControlListener.rightSlide();
}
}
} else {//上滑或者下滑
if (e1.getY() - e2.getY() > MIN_OFFSET_VALUE) {
if (mDirectionControlListener != null) {//上滑
mDirectionControlListener.upSlide();
}
} else {
if (mDirectionControlListener != null) {//下滑
mDirectionControlListener.downSlide();
}
}
}
return true;
}



如果你想让这个View做更多的事,或者优化的更好,可以自行修改DirectionControlView.java


相关源码推荐:

我来说两句
所有评论(15)
ricktians 2016-10-12 11:11:03
mark,收藏了
回复
yujinlongqqqq 2016-10-12 11:13:56
我只是路过打酱油的。
回复
转角依然笑~ 2016-10-12 11:31:35
写的真的很不错
回复
仲夏炎凉。 2016-10-12 11:50:05
帮帮顶顶!!
回复
chaoyue 2016-10-12 12:04:15
好好 学习了 确实不错
回复
w00214777 2016-10-12 12:36:56
帮帮顶顶!!
回复
tylz 2016-10-12 12:57:20
学习...学习...
回复
12下一页
上传代码
查看数:1123 收藏数:13 下载数:22 点赞数:1
状态:已购或VIP 售价:10(原价:10)金钱 下载权限:初级码农 
代码贡献英雄榜
用户名 下载数
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,769657487

如何获得代码达人称号

如何成为签约作者

联系我们
关闭
合作电话:
15618560077
Email:
805941275@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|下载客户端|申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表