Android滑动(二)——滑动方法之layout() 及相应封装API
来源:互联网 发布:梅甘娜rs 知乎 编辑:程序博客网 时间:2024/06/01 10:05
前边我们学了Android坐标系和触控事件,滑动效果原理:通过滑动时的偏移量,来修改View的坐标。
一、layout方法
(1)自定义View的代码:
package com.datong.dragview;import android.content.Context;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;/** * Created by lyj on 2016/4/14. */public class DragView extends View { private int lastX; private int lastY; public DragView(Context context) { super(context); } public DragView(Context context, AttributeSet attrs) { super(context, attrs); } public DragView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public boolean onTouchEvent(MotionEvent event) { int x = (int) event.getX(); int y = (int) event.getY(); switch (event.getAction()){ case MotionEvent.ACTION_DOWN: //记录触摸点的坐标 lastX = x; lastY = y; break; case MotionEvent.ACTION_MOVE: //计算便宜量 int offSetX = x - lastX; int offSetY = y- lastY; //当前left、top、right、buttom的基础上加上偏移量 layout(getLeft() + offSetX, getTop() + offSetY, getRight() + offSetX, getBottom() + offSetY ); break; case MotionEvent.ACTION_UP: break; } return true; }}(2)、布局的代码
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.datong.dragview.DragView android:layout_centerInParent="true" android:layout_width="100dp" android:layout_height="100dp" android:background="#FF0000" /></RelativeLayout>
系统对上下左右移动的API的封装
offsetLeftAndRight(offSetX);//同时对top和Bottom进行偏移offsetTopAndBottom(offSetY);
ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) getLayoutParams();layoutParams.leftMargin = getLeft() + offSetX;layoutParams.rightMargin = getTop() + offSetY;setLayoutParams(layoutParams);
0 0
- Android滑动(二)——滑动方法之layout() 及相应封装API
- Android Scroll分析(二)——实现滑动的五种方法
- Android Scroll分析(二)——滑动的几种方法
- Android 滑动效果入门篇(二)—— Gallery
- Android 滑动效果入门篇(二)—— Gallery
- Android 滑动效果入门篇(二)—— Gallery
- Android 滑动效果入门篇(二)—— Gallery
- Android 滑动效果入门篇(二)—— Gallery
- Android 滑动效果入门篇(二)—— Gallery
- Android 滑动效果入门篇(二)—— Gallery
- Android 滑动效果入门篇(二)—— Gallery
- Android 滑动效果入门篇(二)—— Gallery
- Android 滑动效果入门篇(二)—— Gallery
- Android 滑动效果入门篇(二)—— Gallery
- Android 滑动效果入门篇(二)—— Gallery
- Android版DailyInsist(二)——滑动界面
- Android 滑动效果入门篇(二)—— Gallery
- Android 滑动效果入门篇(二)—— Gallery
- VPN网络访问问题
- Leetcode(59)-Count Primes
- 利用STL的set可以使查询效率变高(2016.4浙江科技学院校赛)
- 码农小汪-设计模式-工厂方法模式 每一产品都有一个具体的实现工厂
- 【GDOI2016模拟3.9】暴走的图灵机
- Android滑动(二)——滑动方法之layout() 及相应封装API
- 友盟自动更新产品介绍
- iOS 隐藏多余的cell
- ListView的使用(一)
- ActiveX控件 姿态仪 高度仪 水平仪...
- Expander
- JS Base64 3Des加密解密(荐)
- Java笔记
- 贵人礼-情人节微信送玫瑰小游戏总结