做自定义相机时需要实现显示网格线,这个需求实现的方法有很多种,最简单的就是用布局实现,这种方法感觉太low,维护的人肯定会说low逼,所以为了维护方便和应对网格个数的改变,所以决定在SurfaceView的基础上自定义一个带网格线的GridSurfacemView,练练手实现很简单,话不多说直接上代码。
首先继承SurfaceView实现GridView:
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.SurfaceView;
import android.view.WindowManager;
public class GridSurfaceView extends SurfaceView {
/**
* 竖向线条数,可通过布局属性设置列数
*/
private int linesX = 2;
/**
* 竖向线条数,可通过布局属性设置行数
*/
private int linesY = 2;
private int width;
private int height;
private Paint mPaint = null;
public GridSurfaceView(Context context) {
this(context, null);
}
public GridSurfaceView(Context context, AttributeSet attrs) {
this(context, attrs, 0