小知识点总结2019-6-7

1 、 radiobutton的属性的回顾

1、系统默认的button按钮样式不想使用时可以使用radiobutton的 button属性更改按钮图片,一般我们给他一个selector设置checked与unchecked状态图片
2、radiobutton的paddingXXX 设置字体和按钮图片之间的距离

2、editText内容位置设置(padding 啊 )

editText中gravity只能设置固定位置(左中右),设置指定位置就用padding (容易忘记啊尴尬)

3、textview加载数码字体

Textview 加载Assets下的ttf文件即可

Typeface typeface = Typeface.createFromAsset(getAssets(),"xxx.TTF");
		
// 设置字体类型
timeTextView.getPaint().setTypeface(typeface);
4、textview setText()内容为 int类型数值时报错

源码分析:

@android.view.RemotableViewMethod
    public final void setText(@StringRes int resid) {
        setText(getContext().getResources().getText(resid));
        mTextSetFromXmlOrResourceId = true;
        mTextId = resid;
    }

可以看出要@StringRes类型的值
在这里插入图片描述

解决方式:

  • 方式一: +“”即可 转换为String类型
  • 方式二:使用String.valueOf()作为参数(如下)
  • 在这里插入图片描述
5、String字符串内容可能为“10”int类型数据 、“1.2”long类型数据。我们把它们转化为数字时可以使用Double.parseDouble(“xxx”)来解析
 String s = "xxx"; // xxx 为数字字符串,但是不确定内容是 int 还是long
 Double.parseDouble(s);
6、gradle 中app 版本动态替换:

我们平时写demo安装app时他的版本号如下
在这里插入图片描述

如下默认是versionName 的1.0,有时我们会在后面加上 versionCode的值比如1.0.1,如果下次app要版本升级,我们需要修改app的versioncode为2 ,versionName为1.0.2好麻烦的 这时我们就可以写gradle 语句动态替换(如下)

apply plugin: 'com.android.application'
//返回具体的 月天
def releaseDate() {
    return new Date().format("MMdd", TimeZone.getTimeZone("UTC+8"))
}

// 返回具体的 年月日-小时分钟
def releaseTime() {
    return new Date().format("yyyyMMdd-HHmm", TimeZone.getTimeZone("GMT+8"))
}
android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.administrator.studydemo"
        minSdkVersion 22
        targetSdkVersion 28
        versionCode 1
        versionName "1.0.${versionCode}.${releaseTime()}"// 在这里使用
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

参考:GMT与UTC简介

7、签名打包的release包的文件名字动态替换

我们平时签名打包的apk 默认名字就是 releasexxx.apk 当然我们也可以在gradle中配置打包后的app名字,这样我们就不用手动修改了。

如下在 build.gradle的android{}下添加:

 applicationVariants.all { variant ->
            if (variant.buildType.name.equals('release')) {
                variant.outputs.all { output ->
                    def buildName = "Fake Location Maker"// 这里就是apk的名字
                    def type = variant.buildType.name
                    def releaseApkName = buildName + '-' + type + "-" + versionName + '.apk'
                    outputFileName = releaseApkName
                }
            }
        }
 //ps:我们修改apk的名字只需要修改buildName就行了

效果:
在这里插入图片描述

8、Random随机数的范围

随机数范围回顾[0,n) 注意包括左面不包括右面。

9、Android studio修改工程名

1、安卓studio关闭要修改的项目
2、文件夹重命名
3、open 重命名的工程(不要open recent)
或者参考这里操作也行

10、app 签名打包失败:Lint found fatal errors while assembling a release target.

解决:这个错误报告会生成在 [app module]/build/reports/lint-results-yourBuildName-fatal.html 打开这个网页,可以看到详细的错误信息。

11、release打包失败问题 The destination folder does not exist or is not writeable

原因:路径错误。一般是你copy别人的项目在自己的电脑运行,而这个路径是别人电脑的路径,你检测下此处这个项目目app的路径是否是你自己电脑上的。(下图红框为错误原因)
在这里插入图片描述

12、Manifest merger failed with multiple errors, see logs问题处理

解决:终端执行命令查看(错误就会显示)

gradlew processDebugManifest --stacktrace

在这里插入图片描述

13、清单文件的package 与 application id 区别

1、package 就是项目的路径(包)。
2、application id是项目的唯一标识,不同的项目application id是不一样的。
3、二者没有关系,有时你会看到他俩一样其实他俩没关系,修改其一不会影响另一个。

package在清单文件中如下图(你修改左面目录,右面的字符串需要变,同时清单文件注册的四大组件路径也要修改)
在这里插入图片描述

application id 在build.gradle中 这里修改代表app发生改变(应用商店中每个app的application id都是唯一)不影响我们自己的项目。
在这里插入图片描述

14、LinearLayout的android:layout_gravity="bottom"不起作用问题

布局layout时, 发现设置了android:layout_gravity="bottom"后view并没有底对齐原因:
1、对于 LinearLayout当 android:orientation=“vertical” 时, 只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。
2、当 android:orientation=“horizontal” 时, 只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。

解决:
1、使用view 占位(weight 属性)
2、替换linearlayout为RelativeLayout

小结

小知识总结下,动手写写。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值