Android开发Tips(6)

作者: SpikeKing | 来源:发表于2016-02-28 09:29 被阅读642次

    欢迎Follow我的GitHub, 关注我的简书. 其余参考Android目录.

    介绍关于Android的一些有趣的小知识点. 本文是第六篇, 欢迎阅读.
    其余第一篇, 第二篇, 第三篇, 第四篇, 第五篇.

    Android

    1. 控件位置

    获取控件四个角的位置.


    控件

    代码

    public static PointF getTopLeftCorner(View view) {
        float src[] = new float[8];
        float[] dst = new float[]{0, 0, view.getWidth(), 0, 0, view.getHeight(), view.getWidth(), view.getHeight()};
        view.getMatrix().mapPoints(src, dst);
        PointF cornerPoint = new PointF(view.getX() + src[0], view.getY() + src[1]);
        return cornerPoint;
    }
    
    public static PointF getTopRightCorner(View view) {
        float src[] = new float[8];
        float[] dst = new float[]{0, 0, view.getWidth(), 0, 0, view.getHeight(), view.getWidth(), view.getHeight()};
        view.getMatrix().mapPoints(src, dst);
        PointF cornerPoint = new PointF(view.getX() + src[2], view.getY() + src[3]);
        return cornerPoint;
    }
    
    public static PointF getBottomLeftCorner(View view) {
        float src[] = new float[8];
        float[] dst = new float[]{0, 0, view.getWidth(), 0, 0, view.getHeight(), view.getWidth(), view.getHeight()};
        view.getMatrix().mapPoints(src, dst);
        PointF cornerPoint = new PointF(view.getX() + src[4], view.getY() + src[5]);
        return cornerPoint;
    }
    
    public static PointF getBottomRightCorner(View view) {
        float src[] = new float[8];
        float[] dst = new float[]{0, 0, view.getWidth(), 0, 0, view.getHeight(), view.getWidth(), view.getHeight()};
        view.getMatrix().mapPoints(src, dst);
        PointF cornerPoint = new PointF(view.getX() + src[6], view.getY() + src[7]);
        return cornerPoint;
    }
    

    2. 异常Error:(216) Apostrophe not preceded by ...

    原因是字符串中包含单引号('), 导致, 添加转义符号即可.

    <string name="hello_kotlin">Hello Kotlin, I\'m Spike! </string>
    

    参考


    3. Editable和String的转换

    Editable是EditText使用的字符串格式. 与String可以相互转换.

    Editable editable = new SpannableStringBuilder("Pass a string here");
    String str = editable.toString();
    

    参考


    4. 设置WRAP_CONTENT和VERTICAL

    在Kotlin中, 使用属性扩展时, 需要记住类.
    WRAP_CONTENT属于LayoutParams, VERTICAL属于LinearLayout.

    import android.widget.LinearLayout.LayoutParams
    import android.widget.LinearLayout
    
    layoutParams = LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)
    orientation = LinearLayout.VERTICAL
    

    5. 删除Commit

    删除本地的Commit, 使用

    git reset --hard HEAD~1
    

    HEAD~1表示前1个, 可以自由设置数字.

    参考


    6. 标准的gitignore

    这是标准的gitignore, 默认项目会生成, 旧的项目可能没有, 需要补充.

    *.iml
    .gradle
    /local.properties
    /.idea/workspace.xml
    /.idea/libraries
    .DS_Store
    /build
    /captures
    

    7. String转换16进制

    DeviceID可能是字母, 会导致解析失败, 解析前需要转换String为16进制数.

        // String转换40位16进制, 防止DeviceID是字母, @Thx 秋爽&康康
        public String toHex(String arg) {
            return String.format("%040x", new BigInteger(1, arg.getBytes(/*YOUR_CHARSET?*/)));
        }
    

    That's all! Enjoy it!

    相关文章

      网友评论

      本文标题:Android开发Tips(6)

      本文链接:https://www.haomeiwen.com/subject/amawkttx.html