1.微信密码盒子之密文
2015-10-11 20:17
483 查看
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">对于上一次的效果,其实我本人很不满意,今天回头看看觉得很不舒服,趁今天有时间就来重新做一做效果,废话不多说了,先上效果图吧</span>
<pre name="code" class="java">public class PassBox extends View { private Paint mPaint;//画笔 private int pwdLength = 6;//密码长度默认为6个 private ArrayList<Rect> mRects;//记录每一个矩形的对象信息 private int screenW, screenH;//屏幕宽高 private int boxW;//每个矩形的宽 private boolean onceLoad = false;//之所以使用这个标识,是为了使获取屏幕宽高的动作只执行一次 public PassBox(Context context) { super(context); init(); } public PassBox(Context context, AttributeSet attrs) { super(context, attrs); init(); } public PassBox(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } void init() { mPaint = new Paint(); mPaint.setStyle(Paint.Style.STROKE);//画笔设置空心填充方式 mPaint.setAntiAlias(true); mRects = new ArrayList<>(pwdLength); } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); if (changed && !onceLoad) { screenW = getWidth(); screenH = getHeight(); onceLoad = true; boxW = screenW / pwdLength;//获取每个矩形的宽度 for (int i = 0; i < pwdLength; i++) { mRects.add(new Rect(i * boxW, 0, (1 + i) * boxW, screenH));//记录每个矩形的信息 } } } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); for (Rect box : mRects) { mPaint.setStyle(Paint.Style.STROKE); canvas.drawRect(box, mPaint); mPaint.setStyle(Paint.Style.FILL);//画笔为填充模式 canvas.drawCircle(box.centerX(), box.centerY(), dip2px(getContext(), 8), mPaint); } } /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } }
源码下载地址
相关文章推荐
- c入门整人小程序
- 微信红包开发
- php实现微信公众平台账号自定义菜单类
- php实现微信公众号无限群发
- 微信开发第二讲 开发与微信交互的servlet
- 微信服务号开发系列培训第一讲 服务号如何连接Java Web应用
- Android高仿微信照片选择器+预览+显示照片
- 006.精度损失
- 微信支付(未完)
- php实现微信公众号无限群发
- php实现微信公众平台账号自定义菜单类
- javaweb之生成微信二维码
- 微信支付获取预支付订单id报错
- 微信:一个必须研究的产品
- 关闭微信浏览器
- 微信支付安卓集成
- 解决iOS9 下面微信不能调用的问题
- 微信端开发研究与技术调研(二)
- 微信端开发研究与技术调研(一)
- java 微信APP支付代码