Android基础
Android唐浮
准备转鸿蒙了
展开
-
Android 如何在不显示文字时获取文字宽度
Android 如何在不显示文字时获取文字宽度正确方式:在canvas中使用:paint.measureText(text)在TextView中使用:textView.getPaint()..measureText(text)代码示例:package com.demo.myapplication3;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Paint;impo原创 2021-04-11 12:54:02 · 307 阅读 · 0 评论 -
Canvas 文字对齐方式
Canvas 文字对齐方式常用的画文字的方法public void drawText (String text, float x, float y, Paint paint)x,y 并不是指定文字的中点位置,并且x,y与文字对齐方式有关(通过setTextAlign()指定,默认为left)测试import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import原创 2021-04-10 23:20:39 · 1531 阅读 · 0 评论 -
Android中Object.requireNonNull和@NonNull
Android中Object.requireNonNull和@NonNullAndroid中的Object.requireNonNull和@NonNull并不能解决报错的问题,相反,是为了更快速的抛出问题、定位问题。问题1: 不加上Object.requireNonNull也会抛出异常,为什么要加上呢?答:这是因为Fail-fast思想, 翻译过来就是, 让错误尽可能早的出现,让开发者可以迅速的定位错误,而不是嵌套的很深发生错误再去排查。问题2: @NonNull 的作用是什么?答: @NonNu原创 2021-03-31 22:15:41 · 1008 阅读 · 0 评论 -
Android Button添加背景后变大?
Android Button添加背景后变大原因:在系统Button自带的样式中,限制了minHeight,minWidth。解决:在写Button组件时将 minWidth minHeight 设置为0dp。 <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/selecto原创 2021-03-25 14:47:51 · 902 阅读 · 0 评论 -
java Int 转 String 后占用内存会变大吗?
java Int 转 String 后占用内存会变大吗?什么是bytebyte,即字节。byte作为java的基本类型之一。它的范围在-128~127,默认值为0。byte 数据类型是8位,1个字节=8bitbyte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一内存分析String 英文字符1个字节 中文2个字节(String的中文字节数要看用的编码集合,如果是utf-8类型的,那么中文占2到3个字节,如果是GBK类型的,那么中原创 2020-09-09 22:21:43 · 1350 阅读 · 0 评论 -
Unknown host ‘services.gradle.org‘ 的解决办法
Unknown host ‘services.gradle.org’ 的解决办法问题原因AndroidStudio 没有下载过该版本的gradle;由于网络原因,在部分运营商网络下,下载gradle会失败,提示这个错误解决更换某信的运营商网络,或者让手机开启热点重新下载。更换gradle版本,distributionUrl更换本地的其它项目已经下载过的gradle。eg:mac gradle 下载的本地目录在 /Users/User/.gradle/wrapper/dists自己从三原创 2020-09-09 22:20:22 · 4283 阅读 · 0 评论 -
Android更改原生Dialog的宽高
Android更改原生Dialog的宽高重点代码特别注意:需要在dialog show 之后再去设置。if (mAlertDialog.getWindow() != null) { WindowManager.LayoutParams lp = mAlertDialog.getWindow().getAttributes(); lp.width = 300; // 宽度,可根据屏幕宽度进行计算 lp.gravity = Gravi原创 2020-09-09 22:19:40 · 1008 阅读 · 0 评论 -
Android TextView同时设置粗体和斜体
Android TextView同时设置粗体和斜体问题TextView的粗体和斜体无法同时生效,要么显示斜体,要么显示粗体。错误代码:tv_test3.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD);tv_test3.setTypeface(Typeface.SANS_SERIF, Typeface.ITALIC);正确示例:tv_test3.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD_IT原创 2020-07-28 20:58:24 · 5002 阅读 · 0 评论 -
Android修改自定义Dialog的大小
Android修改自定义Dialog的大小重点代码view.setMinimumWidth();public class TestDialog extends Dialog { private Activity mContext; public TestDialog(Context context) { super(context, R.style.test_dialog_style); mContext = (Activity) context;原创 2020-07-15 21:30:38 · 1095 阅读 · 1 评论 -
封装一个简单的崩溃监听类
封装一个简单的崩溃监听类注意:无法监听到OOM和ANR异常CrashUtilsimport android.content.Context;import android.os.Handler;import android.os.Looper;import android.util.Log;import android.widget.Toast;public class CrashUtils { private static String TAG = "CrashUtils";原创 2020-06-04 22:12:03 · 237 阅读 · 0 评论 -
ScrollView fillViewport 使用
ScrollView fillViewport 使用有一个需求界面中自上而下有两个方块,依次为A、B方块。A 方块的大小不固定,小的时候在屏幕内,大的时候会超过屏幕外。B 的布局,始终在A的下方,屏幕够显示时,在屏幕的最底部,屏幕不够显示时,随着A滑动。fillViewport 引入如果只在外层写了ScrollView,B会紧紧跟随A,B 不会始终在屏幕最底部了。这时在 ScrollView 内加入 fillViewport=true, 就可以实现需求了。效果图 与 layout 测试代原创 2020-06-04 21:59:56 · 827 阅读 · 0 评论 -
ProgressDialog进度条更改文件单位
ProgressDialog进度条更改文件单位效果图重点部分重点方法:setProgressNumberFormatDownLoadRunnable:模拟下载线程package com.demo.progress;/** * Created by talon on 2020/5/20 * note: 模拟下载线程 */public class DownLoadRunnable implements Runnable { // 模拟数据大小10M private lo原创 2020-05-24 16:26:07 · 322 阅读 · 0 评论 -
可拖动的组件,可更改为其它View
可拖动的组件,可更改为其它View效果图自定义View源码DragTextViewpackage com.demo.drag;import android.content.Context;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.ViewGroup;import android.widget.RelativeLayout;/** * Created原创 2020-05-24 16:24:05 · 298 阅读 · 0 评论 -
Arouter 无法跳转的问题
Arouter 无法跳转的问题Arouter 原理路由框架会在项目的编译期通过注解处理器扫描所有添加@Route注解的Activity类,然后将Route注解中的path地址和Activity.class文件映射关系保存到它自己生成的java文件中。我们在代码里加入的@Route注解,会在编译时期通过apt生成一些存储path和activity.class映射关系的类文件,然后app进程启动...原创 2020-02-22 00:00:04 · 5841 阅读 · 0 评论 -
Android使用svg
Android使用svgsvg是什么?Scalable Vector Graphics,可缩放矢量图形。相当于图片是计算出来的,所以相对于传统的图片,svg放大缩小都不会变形。AndroidStudio 如何使用SVG?Android 5.0 及以上系统中引入了 VectorDrawable 来支持矢量图(SVG)创建一个项目对着res点击右键,依次 New->Vector As...原创 2020-02-21 23:59:06 · 246 阅读 · 0 评论 -
安卓传递整型给后台?
安卓传递整型给后台?经常遇到预留int的接口,安卓这还写不上去,即使是封装好的网络框架支持int,看框架底层,发现也是转了字符串。这是什么原因呢?理论上讲,有了以上三层协议的支持,数据已经可以从一个主机上的应用程序传输到另一台主机的应用程序了,但此时传过来的数据是字节流,不能很好的被程序识别,操作性差。因此,应用层定义了各种各样的协议来规范数据格式,常见的有 HTTP、FTP、SMTP 等...原创 2020-02-21 23:57:48 · 224 阅读 · 0 评论 -
Android编译存放秘钥的so文件
Android编译存放秘钥的so文件为了安全起见,有时我们会把秘钥放在so文件中,那么so文件是如何被编译出来和使用的呢?参考链接:https://www.jianshu.com/p/faa3eebbd4011. 创建java文件。public class JNIUtil { static { System.loadLibrary("web-lib"); ...原创 2020-02-21 23:54:36 · 1568 阅读 · 0 评论 -
Android9.0默认禁止Http
Android9.0默认禁止Http原来9.0系统已经默认不支持http请求了,谷歌默认要求链接是加密链接了。解决办法有好以下几种。符合规范,改用https,需要后台支持将targetSdkVersion 改成27及以下更改默认属性,使它支持Http链接详细讲下第三种配置:在res/xml 目录下新建一个 network_security_config.xml 的文件。 文...原创 2020-02-21 23:53:22 · 2007 阅读 · 0 评论 -
Android Lambda表达式
Android Lambda表达式Lambda 希腊字母 “λ” 的英文名称,在java8中出现Lambda表达式,可以让代码更简洁,语法样式为:参数 -> 表达式; 为什么要去学习Lambda,因为在rxJava中有很多这样的表达式;在Android中有哪些应用场景比较合适呢。应用场景在使用过程中,不建议在自定义接口中使用,原因是因为Lambda常应用在只有一个方法的接口中。而我...原创 2020-02-21 23:52:48 · 2524 阅读 · 0 评论 -
androidx 换成 support
androidx 换成 support最近创建项目发现多了个androidx,并且以前用的好好的库也不能用了,这里为了赶项目就把 androidx 还是换成了之前的 support,这里记录下步骤。项目根目录 gradle.properties中 android.useAndroidX 和 android.enableJetifier 改为 false 或者 注释掉compileSdk...原创 2019-11-24 11:39:04 · 4615 阅读 · 0 评论 -
AndroidStudio 运行项目java.util.zip.ZipException
AndroidStudio 运行项目java.util.zip.ZipException场景windows上可以运行,但是mac上就运行不了,提示java.util.zip.ZipException解决办法用gradlew命令查看具体的报错信息,方便网上搜索具体信息我的提示出错的问题在android.arch.core:commom这个包查看项目引用了什么,打开External ...原创 2019-11-23 18:26:03 · 1696 阅读 · 0 评论 -
Android Studio无法导入android.support.v4.app.Fragment
更新了Android Studio3.4的小伙伴可能会遇到无法导入V4包的问题,即使显示已经导入插入import android.support.v4.app.Fragment;Fragment显示红色那是因为较新版的安卓默认使用androidx的包,摒弃了以前的support包如果开启了自动导包,使用ViewPager + fragment的时候会自动导入androidx的包impor...转载 2019-11-17 21:18:27 · 1331 阅读 · 0 评论 -
小米手机提示“与己安装应用内容提供者冲突”解决办法
小米手机提示“与己安装应用内容提供者冲突”解决办法对于普通用户手机上有款软件与正在安装的软件冲突,在小米机型(其它机型不详)上只能留一个对于开发者检查ContentProvider的authorities字段是否规范,保证该属性不要与其它软件产生冲突。特别是两家app的开发者搬的同一个轮子,并且都没有修改authorities属性。...原创 2019-11-15 10:45:25 · 22124 阅读 · 0 评论 -
Android 收集错误日志
Android 收集错误日志在Android手机收集错误日志时,监听到错误日志时,应该先开启线程将错误信息保存到本地,再在适当的时机上传。原创 2019-11-15 10:44:03 · 332 阅读 · 0 评论 -
Android-App不显示界面,并隐藏进程
Android-App不显示界面,并隐藏进程如何使用;在清单文件的Activity中配置以下信息<!-- 不显示activity;无界面 --><!--android:theme="@android:style/Theme.NoDisplay"--><!-- 不显示任务;一键清理时看不到进程 --><!--android:excludeFro...原创 2019-11-15 10:43:29 · 4176 阅读 · 1 评论 -
Android Studio查看工程的代码总行数
Android Studio查看工程的代码总行数查询项目中所有的换行符\n,即可查询到代码的行数Find in path 入口查询的条件查看结果原创 2019-11-13 16:32:46 · 1313 阅读 · 0 评论 -
Android检查内存卡的空间
Android检查内存卡的空间获取空闲空间 /** * 检查SD卡是否有足够的空间;小于5M不可用 * * @return */ public static final long MAX_SPACE = 5 * 1024 * 1024; // 5M public static boolean checkFreeSpace() { ...原创 2019-11-13 16:28:40 · 145 阅读 · 0 评论 -
Android冷启动与热启动概念
Android冷启动与热启动概念冷启动什么是冷启动Android中的冷启动,使用直白的话就是:当手机 重启 ,点击桌面图标启动应用的过程就是冷启动未启动手机,长时 未使用,应用被 kill 后,此时点击桌面图标启动应用的过程冷启动的表现形式未做处理的情况点击桌面图标后没有反应,没有瞬间打开应用,也就是没有马上看到应用打开点击桌面图标后会显示 黑屏 或者 白屏 , 没有及时渲...原创 2019-11-13 16:27:47 · 1166 阅读 · 0 评论 -
hardwareAccelerated、largeHeap分析
hardwareAccelerated、largeHeap分析问题之前遇到过OOM的异常,但是又确实需要这么多的内存。出现错误:Throwing OutOfMemoryError failed to allocate a 42793710 byte allocation with 52488 free bytes and 22mb until OOM解决看到一篇帖子上提示加上以下代码,竟...原创 2019-11-13 16:26:01 · 556 阅读 · 0 评论 -
Mac AndroidStudio 修改文件不变颜色了?
Mac AndroidStudio 修改文件不变颜色了?场景:最近更新了AndroidStudio3.5.1,结果突然发现修改代码之后不变颜色了,我已经关联了Git啊。网上搜索相关问题,说是安装了某某插件冲突了,我是没安装了,安装插件的同学传送至:https://jingyan.baidu.com/article/fec4bce2bdf8dbf2608d8b7b.html思考:每个项目都...原创 2019-11-13 16:23:49 · 471 阅读 · 0 评论 -
StartActivityForResoult
StartActivityForResoult使用场景以指定的请求码启动Activity,而且程序将会等到新启动Activity的结果。用于标识请求来源实际情况在6.0+权限适配时,用户拒绝权限之后,需要跳转到设置界面,返回时需要判断用户有没有开权限。如果在onResume中写的话,onResume会执行多次,就要添加变量进行判断,很麻烦。这时如果使用StartActivityForR...原创 2019-11-13 16:23:04 · 120 阅读 · 0 评论 -
Mac AndroidStudio 修改文件不变颜色了?
Mac AndroidStudio 修改文件不变颜色了?场景:最近更新了AndroidStudio3.5.1,结果突然发现修改代码之后不变颜色了,我已经关联了Git啊。网上搜索相关问题,说是安装了某某插件冲突了,我是没安装了,安装插件的同学传送至:https://jingyan.baidu.com/article/fec4bce2bdf8dbf2608d8b7b.html思考:每个项目都...原创 2019-10-23 22:43:13 · 559 阅读 · 0 评论 -
android Studio将String.xml中的字段导出。
项目经理让我去拿出中文字段,整理好发表格Excel给他。手动弄太慢了。于是找到了这个插件:Android XML CSV parser找到之后,在这里使用导出之后是一个 csv格式的文件。用文本打开复制,然后用word新建一个表格,以" , " 分割数据,完成表格。然后创建一个Excel表格,复制word中的表格数据 。 大功告成。...原创 2016-05-31 00:55:40 · 5296 阅读 · 7 评论 -
armeabi armeabi-v7a mips x86 理解
ABI:指应用基于哪种指令集来进行编译,ABI总共有四种,分别是armeabi、armeabi-v7a、mips、x86,它们都是表示cpu的类型。安卓支持三类处理器(CPU):ARM、Intel和MIPS。ARM无疑被使用得最为广泛。Intel因为普及于台式机和服务器而被人们所熟知,然而对移动行业影响力相对较小。MIPS在32位和64位嵌入式领域中历史悠久,获得了不少的成功,可目前An...原创 2016-03-23 17:17:00 · 698 阅读 · 0 评论 -
mac android studio 3.1.2以上查看app的控件布局
使用uiautomatorviewer即可。路径是/Users/用户名/Library/Android/sdk/tools/bin/uiautomatorviewer原创 2018-12-18 10:21:25 · 1282 阅读 · 0 评论 -
Android Studio 你需要掌握的Debug调试技巧
从左到右依次为Step Over:下一步,不会进入方法内部。Step Into:进入到方法内部。ForceStep Into:进入到系统方法内部。Step Out:跳出该方法。Run to Cursor:进入到下个断点,只有一个断点就到下一次的该断点。===================================================原文http:/...转载 2018-12-08 23:32:19 · 392 阅读 · 0 评论 -
android studio如何修改包名
原文链接:http://www.jianshu.com/p/557e1906db1a使用Android studio有一段时间了,但是每次修改包名的时候都是用一种简单粗暴的方式,那就是新建一个想要的包名,然后直接拖拽。但是这样有个不好的地方就是每次都要去修改manifest.xml文件。今天忽然发现了一个简单的方法,下面即将展示:1.点击如一所示的图标,然后会出现2所...转载 2016-05-31 00:48:45 · 444 阅读 · 0 评论 -
android studio mipmap 目录和 drawable 目录有什么区别
原文链接:https://segmentfault.com/q/1010000002603418/a-1020000002603498使用studio 发现drawle-hdpi 都没有了换成了mipmap-hdpi我简单总结一下,使用上没有任何区别,你把它当drawable用就好了。但是用mipmap系统会在缩放上提供一定的性能优化。总结一下是这样:Nexu...转载 2016-03-14 10:41:56 · 601 阅读 · 0 评论 -
Android Studio中导入第三方库工程的方法
网上看到了两篇导入第三方库工程 的博客。觉得这篇比较好,所以转载了。http://www.cnblogs.com/neozhu/p/3458759.htmlhttp://blog.csdn.net/ocean20/article/details/442416291.下载所需库工程,此处以httpzoid为例子,在工程根目录下创建一个extras文件夹用于存放库工程。将httpz...转载 2016-03-14 10:23:35 · 513 阅读 · 0 评论 -
androidStudio3.0.1出现Resolved versions for app (26.0.0-beta1) and test app (27.1.1) differ
遇到这问题,更改app版本就很简单了,但我因为某些原因不能修改app版本,只能修改test app了。所以找到了下面链接的参考:https://blog.csdn.net/yikunhan/article/details/80096039以下为转载内容===================================================================...转载 2018-08-28 20:59:30 · 260 阅读 · 0 评论