Android学习

记录android开发中琐碎的点

2017-04-22  本文已影响12人  前行的乌龟

在开发中,我们可能会碰到各种个恶心人的问题,这里记录一下,方便查看

目录:

canves 绘制点九图
点九图本质上也是一个 SVG 矢量图,要不她怎么能自由缩放呢
一般我们都是这样些的:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bubble);
Rect rect = new Rect(l, t, r, b);
canvas.drawBitmap(bitmap, null, rect, new Paint());

然后我们可以看到是这样的,这样就是去了我们制作点九图的初衷了


上面我说了,点九图就是一个 SVG矢量图,那么我们就用path 来画

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bubble);
NinePatch ninePatch = new NinePatch(bitmap, bitmap.getNinePatchChunk(), null);
RectF rectF = new RectF(l, t, r, b);
ninePatch.draw(canvas, rectF);

然后我们就可以看到一切正常,和我们摄像的一样了


ScrollView 嵌套 RecyclerView 惯性滑动失败

这个问题基本上每个人都会碰到,解决的方式有很多,但是核心的原理就是让RecyclerView不滑动,因为RecyclerView是强制父控件把点击事件传递给他的。今天看到一个简单的实现,发到这里大伙看一下:

Snip20170422_6.png
源地址

避免重复吐司 ( Toast ) 时,显示时间过长

基本上工作一段时间的人都知道,测试一定会给你提这个 bug,这个问题也是必须解决的,贴一个实现,其实写法很多,本质一样,维护一个全局 的静态的 toast 对象,点后一直操作这个对象

public void showToast(Context context, String text, boolean isLongLength) {
    int length;
    if (isLongLength) {
        length = Toast.LENGTH_LONG;
    } else {         
        length = Toast.LENGTH_SHORT;
    }
    if (toast == null) {
        toast = Toast.makeText(context, text, length);
    } else {
        toast.setText(text);
        toast.setDuration(length);
    }
    toast.show();
}
上一篇下一篇

猜你喜欢

热点阅读