这篇文章主要为大家详细介绍了Android实现图片双指缩放,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了Android实现图片双指缩放的具体代码,供大家参考,具体内容如下
展示

源码
using Android.App;
using Android.OS;
using Android.Util;
using Android.Views;
using Android.Widget;
namespace android_by_csharp
{
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.main);
var avatar = FindViewById<ImageView>(Resource.Id.avatar);
var distance = 0;
if (avatar != null)
avatar.Touch += (sender, args) =>
{
if (args.Event == null) return;
// 双指按下
if ((args.Event.Action & MotionEventActions.Pointer2Down) == MotionEventActions.Pointer2Down)
distance = (int)Distance(args.Event);
// 双指抬起
else if ((args.Event.Action & MotionEventActions.Pointer2Up) == MotionEventActions.Pointer2Up)
Toast.MakeText(this, "双指抬起", ToastLength.Short)?.Show();
// 移动,双指
if ((args.Event.Action & MotionEventActions.Move) == 0 || args.Event.PointerCount != 2) return;
var moveDistance = Distance(args.Event);
avatar.ScaleY = avatar.ScaleX *= moveDistance / distance;
if (moveDistance / distance < 1)
Toast.MakeText(this, "缩小", ToastLength.Short)?.Show();
else if (moveDistance / distance > 1)
Toast.MakeText(this, "放大", ToastLength.Short)?.Show();
};
}
// 计算两个触摸点之间的距离
private static float Distance(MotionEvent motionEvent)
{
var x = motionEvent.GetX(0) - motionEvent.GetX(1);
var y = motionEvent.GetY(0) - motionEvent.GetY(1);
return FloatMath.Sqrt(x * x + y * y);
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程学习网。
织梦狗教程
本文标题为:Android实现图片双指缩放
基础教程推荐
猜你喜欢
- IOS 播放系统提示音使用总结(AudioToolbox) 2023-03-01
- 解决Android Studio突然不显示logcat日志的问题 2023-02-04
- Flutter绘图组件之CustomPaint使用详解 2023-05-12
- android studio按钮监听的5种方法实例详解 2023-01-12
- IOS应用内跳转系统设置相关界面的方法 2022-11-20
- iOS开发教程之XLForm的基本使用方法 2023-05-01
- Android开发使用RecyclerView添加点击事件实例详解 2023-06-15
- Android多返回栈技术 2023-04-15
- Flutter手势密码的实现示例(附demo) 2023-04-11
- Android中的webview监听每次URL变化实例 2023-01-23
