电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Android實現View的拖拽

瀏覽:42日期:2022-09-24 08:20:30

本文實例為大家分享了Android實現View拖拽的具體代碼,供大家參考,具體內容如下

前言

實現View的拖拽,其實原理很簡單。無非就是獲取手指的位移信息,然后view根據手指的位移信息,移動對應的位置。

首先是獲取手機的位移信息就可以根據需求不同分為兩種

拖拽view本身,view實現移動。則設置view的setOnTouchListener。 在activity中隨意滑動,view都會反應出動作。則重寫activity onTouchEvent方法。

而移動的方法嘛,也有幾種

給view設置補間動畫,動畫時間為0.(不推薦,因為移動的只是view的影子,本地還在原地) 更改view 的margin。(不推薦,會影響viewgroup的布局排布) 根據屬性動畫原理,更改setTranslationX和setTranslationY.(推薦此方法,不會影響原理的布局排布)

代碼

public class ViewTestActivity extends AppCompatActivity { private static final String TAG = 'ViewTestActivity'; private TextView mTv1,mTv2; private double lastx,lastY; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_view_test); mTv1= (TextView) findViewById(R.id.tv01); mTv1.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) {double x=event.getRawX();double y=event.getRawY();Log.d(TAG, 'onTouch: '+event.getAction());if (event.getAction()==MotionEvent.ACTION_DOWN){ lastx=x; lastY=y;}else if (event.getAction()==MotionEvent.ACTION_MOVE){ double dx=x-lastx; double dy=y-lastY; Log.d(TAG, 'onTouch: dx=='+dx+',dy=='+dy);// startAnimation(dx,dy); // moveMethod1(dx, dy); moveMethod2(dx, dy); lastx=x; lastY=y;}return true; } }); }// @Override// public boolean onTouchEvent(MotionEvent event) {// double x=event.getRawX();// double y=event.getRawY();// Log.d(TAG, 'onTouch: '+event.getAction());// if (event.getAction()==MotionEvent.ACTION_DOWN){// lastx=x;// lastY=y;// }else if (event.getAction()==MotionEvent.ACTION_MOVE){// double dx=x-lastx;// double dy=y-lastY;// Log.d(TAG, 'onTouch: dx=='+dx+',dy=='+dy);//// startAnimation(dx,dy);//// // moveMethod1(dx, dy);// moveMethod2(dx, dy);//// lastx=x;// lastY=y;// }// return true;// } //根據屬性動畫的原理 private void moveMethod2(double dx, double dy) {mTv1.setTranslationX((float) (mTv1.getTranslationX()+dx)); mTv1.setTranslationY((float) (mTv1.getTranslationY()+dy)); } //根據margin 原理 private void moveMethod1(double dx, double dy) { ViewGroup.MarginLayoutParams marginLayoutParams= (ViewGroup.MarginLayoutParams) mTv1.getLayoutParams(); marginLayoutParams.leftMargin+=dx; marginLayoutParams.topMargin+=dy; mTv1.setLayoutParams(marginLayoutParams); } private void startAnimation(double dx, double dy) { ObjectAnimator objectAnimator=ObjectAnimator.ofFloat(mTv1,'translationX', (float) (mTv1.getTranslationX()+dx)).setDuration(3000); objectAnimator.start(); ObjectAnimator objectAnimator2=ObjectAnimator.ofFloat(mTv1,'translationY', (float) (mTv1.getTranslationY()+dy)).setDuration(3000); objectAnimator2.start(); }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
主站蜘蛛池模板: SDI车窗夹力测试仪-KEMKRAFT方向盘测试仪-上海爱泽工业设备有限公司 | SF6环境监测系统-接地环流在线监测装置-瑟恩实业 | 智能电表|预付费ic卡水电表|nb智能无线远传载波电表-福建百悦信息科技有限公司 | 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | MTK核心板|MTK开发板|MTK模块|4G核心板|4G模块|5G核心板|5G模块|安卓核心板|安卓模块|高通核心板-深圳市新移科技有限公司 | 噪声治理公司-噪音治理专业隔音降噪公司 | 珠海冷却塔降噪维修_冷却塔改造报价_凉水塔风机维修厂家- 广东康明节能空调有限公司 | 高扬程排污泵_隔膜泵_磁力泵_节能自吸离心水泵厂家-【上海博洋】 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | 高博医疗集团上海阿特蒙医院 | 全温恒温摇床-水浴气浴恒温摇床-光照恒温培养摇床-常州金坛精达仪器制造有限公司 | 不锈钢螺丝,不锈钢螺栓,不锈钢标准件-江苏百德特种合金有限公司 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | MTK核心板|MTK开发板|MTK模块|4G核心板|4G模块|5G核心板|5G模块|安卓核心板|安卓模块|高通核心板-深圳市新移科技有限公司 | 广州昊至泉水上乐园设备有限公司 | 精准猎取科技资讯,高效阅读科技新闻_科技猎 | 智慧物联网行业一站式解决方案提供商-北京东成基业 | ★济南领跃标识制作公司★济南标识制作,标牌制作,山东标识制作,济南标牌厂 | 多物理场仿真软件_电磁仿真软件_EDA多物理场仿真软件 - 裕兴木兰 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 拉力机-拉力试验机-万能试验机-电子拉力机-拉伸试验机-剥离强度试验机-苏州皖仪实验仪器有限公司 | 北京亦庄厂房出租_经开区产业园招商信息平台| 济南办公室装修-厂房装修-商铺装修-工装公司-山东鲁工装饰设计 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | 并离网逆变器_高频UPS电源定制_户用储能光伏逆变器厂家-深圳市索克新能源 | 运动木地板_体育木地板_篮球馆木地板_舞台木地板-实木运动地板厂家 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 上海律师咨询_上海法律在线咨询免费_找对口律师上策法网-策法网 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 深圳公司注册-工商注册代理-注册公司流程和费用_护航财税 | 粉末冶金注射成型厂家|MIM厂家|粉末冶金齿轮|MIM零件-深圳市新泰兴精密科技 | 家用净水器代理批发加盟_净水机招商代理_全屋净水器定制品牌_【劳伦斯官网】 | 测试治具|过炉治具|过锡炉治具|工装夹具|测试夹具|允睿自动化设备 | 304不锈钢无缝管_不锈钢管厂家 - 隆达钢业集团有限公司 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 深圳天际源广告-形象堆头,企业文化墙,喷绘,门头招牌设计制作专家 | 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 天津电机维修|水泵维修-天津晟佳机电设备有限公司 | 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 合肥汽车充电桩_安徽充电桩_电动交流充电桩厂家_安徽科帝新能源科技有限公司 | 贵阳用友软件,贵州财务软件,贵阳ERP软件_贵州优智信息技术有限公司 |