您的位置:首页 > 其它

View的基础知识和Scroller的使用

2016-01-07 16:11 253 查看

前言

了解View的基础知识是深入学习自定义View的铺垫,下面将介绍一些关于View的概念和一些重要参数,如位置参数。还会介绍Android的坐标系统,和自定义View中弹性滑动常用的Scroller类的使用。

View是什么

View的重要参数

Android的坐标系统

Android中的坐标系分为两种,一绝对坐标系即屏幕坐标,二相对坐标即View相对父容器的坐标。两种坐标系都是以向右为x轴正方向以向下为y轴正方向,绝对坐标系的原点为屏幕左上角,相对坐标系的原点为父容器左上角。



Scroller的使用方法

package com.example.test.view;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.LinearLayout;
import android.widget.Scroller;

public class MovtionView extends LinearLayout {

private Scroller mScroller;
private Context mContext;
private int mTranX;
private int mTranY;

public MovtionView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mContext = context;
init();
}

public MovtionView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}

public MovtionView(Context context) {
this(context, null);
}

private void init() {
mScroller = new Scroller(mContext);
mTranX = (int) getTranslationX();
mTranY = (int) getTranslationY();
setClickable(true);
}

public void smoothScollBy(int dx, int dy) {
mScroller.startScroll(mTranX, mTranY, dx, dy, 2000);
invalidate();
}

@Override
public void computeScroll() {
if (mScroller.computeScrollOffset()) {
setTranslationX(mScroller.getCurrX());
setTranslationY(mScroller.getCurrY());
postInvalidate();
} else {
mTranX = (int) getTranslationX();
mTranY = (int) getTranslationY();
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: