本文主要是介绍View的基础知识和Scroller的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
了解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();}@Overridepublic void computeScroll() {if (mScroller.computeScrollOffset()) {setTranslationX(mScroller.getCurrX());setTranslationY(mScroller.getCurrY());postInvalidate();} else {mTranX = (int) getTranslationX();mTranY = (int) getTranslationY();}}}
这篇关于View的基础知识和Scroller的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!