成长之路一

一、功能类

1. BigDecimal类

如果你和金额打交道,强烈建议你使用此类。

2.RelativeLayout constraintlayout 属性


图上所示,实现上面的功能,RelativeLayout用layout_alignTop和layout_alignEnd;constraintlayout用layout_constraintEnd_toEndOf和layout_constraintTop_toTopOf。当然现在更推荐你使用constraintlayout。

3. 标题栏向上凹陷,之后恢复

这个问题纯粹是为了记录一下,因为以前的项目就遇到过(轻轻扇自己一巴掌,为何没记住,白白浪费时间)。问题的产生:闪屏界面设置全屏,跳转到主界面,主界面标题栏就会产生上面所说问题。解决方法:跳转时调用下面代码恢复下即可。

 getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
复制代码

4. Imagivew


图上所示功能,简单自定义即可实现,当然欢迎各位大佬分享跟好的方式,留言告诉我!

  public void setText(String content) {
        this.content = content;
        if (TextUtils.isEmpty(content)) {
            this.setColorFilter(context.getResources().getColor(R.color.transparent));
        } else {
            this.setColorFilter(context.getResources().getColor(R.color.sort_bg));
        }
        this.invalidate();
    }
        /**
     * 图片中心绘制文本
     *
     * @param canvas 画布
     */
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        final float textWidth = paint.measureText(content);
        float x = getWidth() / 2 - textWidth / 2;
        Paint.FontMetrics fontMetrics = paint.getFontMetrics();
        float dy = (fontMetrics.descent - fontMetrics.ascent) / 2 - fontMetrics.descent;
        float y = getHeight() / 2 + dy;
        canvas.drawText(content, x, y, paint);
    }
复制代码

二、建议类

1. 方法传参

当一个方法传参过多时,建议你用一个类去承接各个参数。例如:近期项目中有个接口要传参二十来个,开始时,考虑都没考虑直接一个方法传参这么多。看着这样的方法,谁都头皮发麻。所以就着手优化,想到用一个类去承接这么多参数,方法看着简单明了,而且全局变量之类的也变少了。好处是立竿见影!

2. 尽量用recyclerView代替ScrollView实现长滚动布局

图上所示布局,一些Android开发者可能直接用ScrollView或者NestedScrollView包裹去实现了,实际上我强烈不建议你使用这种方式实现。而是使用recyclerView的多种行视图去做。为什么呢?那么来看下阿里android开发手册中怎么说。
新项目一开始就是srcollView嵌套,之后改为recyclerView多种行视图,除了减少内存的消耗外,Activity或者Fragment中代码量从原先的五六百行,直接精简到三百来行,效果明显;而且Activity中布局也只有recyclerView一个控件,清晰明了。

3. DialogFragment

你还在使用AlertDialog或者Dialog吗?强烈建议你使用DialogFragment。我使用它是因为看了阿里android开发手册,推荐这样。之后发现原来google也建议使用它。好处我就不多说了,网上大佬讲解的很详细,我就不老生常谈了。

4. 慎用单例,static关键字

为何给出这样的建议?我的同事是一个有这八年以上工作经验的人了,很喜欢使用单例,但使用后从来不考虑产生的内存泄漏问题!所以,给大家提个醒!

ps: 如果对你有所帮助,那是我的荣幸;如果对你没帮助,说明你的技术在我之上。那么,废话不多说了,在此我厚着脸皮推荐下自己的公众号,大佬们可别误会啊,我的公众号Android技术是次要的,看上面也知道我是个菜鸟,能分享啥牛逼的技术嘛!公众号我主要分享的是我对股市(投资)、楼市、生活的感悟等,希望会对你有所帮助。

转载于:https://juejin.im/post/5c07ba48f265da61620d2ec2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值