android缩放组件,Android实现控件的缩放移动功能

上篇文章给大家介绍了 Android控件实现图片缩放功能,需要的朋友点击查看。

1.简介

话不多说先来张效果图

677ef93d145aebc98263e676c101f989.gif

控件缩放移动.gif

上面的gif中,依次进行了拖动——>触摸右上角放大,缩小——>触摸上方与右测边缘——>双指放大缩小。

2 使用步骤

2.1 布局。外层一个LinearLayout,里面一个自定义的控件DragScaleView,为了能够更清楚的看到控件的变化过程,就给控件加了一个灰色带虚线的边框bg_dashgap。

layout文件

android:orientation="vertical"

android:id="@+id/root"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#80ce3d3a"

android:gravity="center_horizontal"

android:fitsSystemWindows="true">

android:id="@+id/hair_dv"

android:src="@drawable/ic_sure"

android:background="@drawable/bg_dashgap"

android:adjustViewBounds="true"

android:layout_marginLeft="50dp"

android:layout_marginTop="10dp"

android:layout_width="100dp"

android:layout_height="120dp"

android:clickable="true"/>

在drawable文件夹下的bg_dashgap.xml

android:bottomLeftRadius="8dp"

android:bottomRightRadius="8dp"

android:radius="15dp"

android:topLeftRadius="8dp"

android:topRightRadius="8dp" />

android:dashGap="4dp"

android:dashWidth="4dp"

android:width="2dp"

android:color="@color/my_gery" />

2.2 自定义的控件

单指触摸:

当ACTION_DOWN时如果坐标为1.2.3.4四个区域,则对View进行相应的左上/右上/左下/右下拉伸;

当ACTION_DOWN时如果坐标为5.6.7.8四个区域,则分别对上/右/下/左四个方向进行拉伸;

当ACTION_DOWN时如果坐标为9这个区域,则对View进行移动;

a989e1a7e951bbccf65ec2ce45b160dc.png

双指触摸:

先计算出触摸时双指的距离,float oriDist=distance(event);

再得到双指离开屏幕的距离,float newDist =distance(event);

得到两者之间的比例 float scale = newDist / oriDist;

计算双指间距离的方法

/**

* 计算两个手指间的距离

* @param event 触摸事件

* @return 放回两个手指之间的距离

*/

private float distance(MotionEvent event) {

float x 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值