Android實現(xiàn)圖片雙指縮放
本文實例為大家分享了Android實現(xiàn)圖片雙指縮放的具體代碼,供大家參考,具體內(nèi)容如下
展示
源碼
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); } } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android 解決嵌套Fragment無法接收onCreateOptionsMenu事件的問題
本文主要介紹Android Fragment無法接收onCreateOptionsMenu事件的問題,這里給出解決辦法以及詳細代碼,希望能幫助有需要的小伙伴2016-07-07Android破解微信獲取聊天記錄和通訊錄信息(靜態(tài)方式)
這篇文章主要介紹了Android以靜態(tài)方式破解微信獲取聊天記錄和通訊錄信息,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-08-08解決Android自定義view獲取attr中自定義顏色的問題
這篇文章主要介紹了Android自定義view獲取attr中自定義顏色的問題解決方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12Android實現(xiàn)三級聯(lián)動下拉框 下拉列表spinner的實例代碼
這篇文章介紹了Android實現(xiàn)三級聯(lián)動下拉框 下拉列表spinner的實例代碼,有需要的朋友可以參考一下2013-10-10Android優(yōu)化提升應(yīng)用啟動速度及Splash頁面的設(shè)計
這篇文章主要介紹了Android性能優(yōu)化的一些相關(guān)資料,文章圍繞提升應(yīng)用啟動速度及Splash頁面的設(shè)計的內(nèi)容展開介紹,需要的朋友可以參考一下,希望對你有所幫助2021-12-12Android使用自定義View實現(xiàn)餅狀圖的實例代碼
這篇文章主要介紹了Android使用自定義View實現(xiàn)餅狀圖的實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05