0%

今天研究了一下自定义View中的动画。
绘制View中的动画可以使用Animation来实现,例如我们要实现动态绘制一个圆圈,绘制的主要代码使用canvas接口:

1
public void drawArc(@NonNull RectF oval, float startAngle, float sweepAngle, boolean useCenter, @NonNull Paint paint)

阅读全文 »

今天研究了一下自定义View中XML属性的解析。

首先,我们在声明自定义View时,会直接声明构造函数:

1
public XCustomView(Context context, AttributeSet attrs)

阅读全文 »

ViewHolder是ListView,GridView中常用的优化方案。以往看到很多文章,将缓存View与ViewHodler的使用放在一起来讲,但实际使用ViewHolder是有明确的目的和作用的。

阅读全文 »

LayoutInflater类中有多个inflate方法,这里简要说一下:

1
2
3
public View inflate(int resource, ViewGroup root)

public View inflate(int resource, ViewGroup root, boolean attachToRoot)

这两个方法的区别,以及第二个方法中boolean变量的作用。

阅读全文 »

在Android中,View的可见属性是由xml中android:visibility属性指定的,此外,还可以通过view的setVisibility(int visibility)方法动态设定。

这个属性总共有三个值:VISIBLEINVISIBLEGNOE,其含义与性质分别如下:

属性值 意义
visible view正常可见
invisible view隐藏不可见,但会占用其所在的位置(留出相应大小的空白)
gone view隐藏不可见,并且不会占用其所在位置的空间

在Android中获得屏幕的宽高信息,可以通过DisplayMetrics类实现。

在Activity的onCreate()函数中添加如下代码:

1
2
3
4
5
6
7
// 声明DisplayMetrics对象,并获得当前屏幕的Metrics
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);

// 获取宽与高
int screenWidth = dm.widthPixels;
int screenHeight = dm.heightPixels;

在Java中使用正则表达式非常方便,使用
Pattern与Matcher两个类就可以满足需求。

  • Pattern 用来存储所使用的正则表达式
  • Matcher 用来对目标字符串执行正则表达式的匹配
阅读全文 »