Android
文章平均质量分 60
ch_kexin
俏皮,可爱
展开
-
Android 混淆介绍
Android 混淆介绍目录:一、启用混淆文件二、ProGuard作用三、编辑混淆文件 (五步搞定)四、常用混淆写法五、其他一些混淆注意事项原创 2023-05-10 16:52:12 · 777 阅读 · 0 评论 -
Android 模拟发送按键事件
keydown,android原创 2023-02-02 10:10:48 · 1117 阅读 · 0 评论 -
报错:Only the original thread that created a view hierarchy can touch its views.
主线程,子线程原创 2023-01-28 17:03:53 · 2023 阅读 · 0 评论 -
android 多张图片渐变切换控件
android 多张图片渐变切换控件原创 2023-01-03 15:44:46 · 445 阅读 · 0 评论 -
Android dumpsys 常用命令
dumpsys 一些常用的命令原创 2022-11-07 15:53:29 · 1336 阅读 · 0 评论 -
adb shell dumpsys meminfo 详解
简单解释 adb shell dumpsys meminfo 返回的数据原创 2022-11-07 15:37:02 · 2791 阅读 · 0 评论 -
Android单元测试
全面了解Android单元测试原创 2022-08-08 15:33:44 · 2502 阅读 · 0 评论 -
五幅图学会Android Canvas的坐标系变换(rotate translate scale)
在写公司项目的时候,须要画一个垂直的SeekBar,一开始就是简单的在xml文件里面,添加了android:rotate="-90"这个配置,不事后面发现不少问题。最后网上查资料,使用了Canvas.rotate()和Canvas.translate()的结合,实现了垂直的SeekBar布局。android一.Canvas的坐标系介绍通常来说,一个自定义view的canvas的显示区域就是View的区域,大小就是width*height。canvas@Override protec原创 2022-05-31 10:57:46 · 1365 阅读 · 0 评论 -
Android Canvas rotate() 旋转
Canvas 提供了 rotate() 方法用于旋转当前 Canvas 对象一定角度rotate ( 旋转 )void rotate(float degrees)final void rotate(float degrees, float px, float py)围绕坐标原点或指定坐标旋转 degrees 度,值为正顺时针参数说明参数 说明 degrees 旋转角度 px 指定旋转的中心点坐标的 x 坐标 py 指定旋转的中心点坐标的 y 坐标原创 2022-05-31 10:46:30 · 2124 阅读 · 0 评论 -
setFocusable,setFocusableInTouchMode,requestFocusFromTouch , requestFocus
setFocusable与setFocusableInTouchMode差异前者针对在键盘下操作的情况,如果设置为true,则键盘上下左右选中,焦点会随之移动。而后者,显然是针对触屏情况下的,也就是我们点击屏幕的上的某个控件时,不要立即执行相应的点击逻辑,而是先显示焦点(即控件被选中),再点击才执行逻辑。android:focusable=“true”不会改变android:focusableInTouchMode,因此只在键盘状态下显示焦点,在TouchMode状态下,依旧无法显示焦点。a...原创 2022-04-08 17:49:14 · 749 阅读 · 0 评论 -
android InputStream相关类
InputStream 作用:用来表示哪些从不同数据源产生输入的类,这些数据源包括:字节数组、String对象、文件、“管道”、一个由其他种类的流组成的序列、其他数据源(如internet链接等)1、inputstream是最原始的,专注了核心功能,此抽象类是表示字节输入流的所有类的超类;2、inputstreamreader是核心功能的装饰,提供了更封装的方法;inputstreamreader是将字节流转换成字符流,是上面两者的转换类 比如输入时inputStream,可以...原创 2022-04-01 16:14:39 · 1435 阅读 · 1 评论 -
使用AudioTrack播放pcm流式音频
一、什么是AudioTrack/** * The AudioTrack class manages and plays a single audio resource for Java applications. * It allows streaming of PCM audio buffers to the audio sink for playback. This is * achieved by "pushing" the data to the AudioTrack object us原创 2022-04-01 14:55:38 · 3697 阅读 · 0 评论 -
用XML文件对控件的设置-shape形状的使用与自定义图形
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 内边距 将该背景图片的边框与图片形成10dp的边框--> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom=.原创 2022-04-01 13:51:39 · 3097 阅读 · 0 评论 -
RecyclerView添加分割线
RecyclerView 并没有 divider 属性,但是我们可以通过 RecyclerView 的 addItemDecoration() 来添加分割线,该方法参数为 RecyclerView.ItemDecoration。介绍当 RecyclerView 添加 ItemDecoration 后,RecyclerView 在绘制每个 item 的时候,会去绘制 decorator,也就是会调用 ItemDecoration 的 onDraw() 和 onDrawOver() 方法。Recyc原创 2022-04-01 09:35:33 · 4284 阅读 · 0 评论 -
Android - Kotlin 普通类,构造函数,抽象类,内部类等
一、类的声明1、关键字声明类的关键字为class二、类的构造函数在Kotlin中,允许有一个主构造函数和多个二级构造函数(次构造函数)。其中主构造函数是类头的一部分。 关键字或者构造函数名:constructor(参数)主构造器主构造器中不能包含任何代码,初始化代码可以放在初始化代码段中,初始化代码段使用init关键字作为前缀。class Person constructor(firstName: String) { init { println("F.原创 2022-03-07 17:55:03 · 4239 阅读 · 0 评论 -
Android - Kotlin 继承类
超类(Any)Kotlin 中所有类都继承该 Any 类,它是所有类的超类,对于没有超类型声明的类是默认超类:class Example // 从 Any 隐式继承如果一个类要被继承,可以使用open关键字进行修饰。open class Base(p: Int) // 定义基类class Derived(p: Int) : Base(p)定义定义继承类的关键字为:open。不管是类、还是成员都需要使用open关键字。 定义格式为:open c...原创 2022-03-07 17:33:24 · 2698 阅读 · 0 评论 -
@SuppressLint(“XXXXXXX”)分析
碰到方法的前面和类的前面有时会出现@SuppressLint或者@SuppressWarnings这样的黄色警告,看起来很不舒服,于是上网搜集了一些相关资料。发现这些警告的出现其实是由于我们编写代码时的一些不规范的写法导致,解决这些问题其实是能提高我们程序的安全性、可用性和性能的。接下来就让我为大家一一说明。1、@SuppressLint(“DrawAllocation”)原因:我们都知道View及其子类的OnDraw(Canvas canvas)方法会实时调用来更新界面的,然而有时我们会在onD..原创 2022-03-07 16:05:21 · 83913 阅读 · 10 评论 -
[Android ] seekbar ,去除自定义thumb滑块不透明背景
在xml布局中使用seekbar ,给thumb一个图片,但是却多了些背景出来,不透明了<SeekBar android:id="@+id/sbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:splitTrack="false" android:progress="20" andr原创 2022-03-07 15:58:37 · 4383 阅读 · 2 评论 -
Java MediaMetadataCompat
导入方法依赖的package包/类import android.support.v4.media.MediaMetadataCompat;MediaControllerCompat mController = new MediaControllerCompat(getActivity(),getSessionToken());MediaMetadataCompat metadata = mController.getMetadata();PlaybackStateCompat playBac原创 2022-02-25 19:11:23 · 969 阅读 · 0 评论 -
Android中关于保留小数点位数的处理
保留两位小数方法一:{ double c = 3.154215; java.text.DecimalFormat myformat=new java.text.DecimalFormat("0.00"); String str = myformat.format(c);}方式二:{ java.text.DecimalFormat df = new java.text.DecimalFormat("#.00"); df.format(你要格式化的原创 2022-02-16 14:06:37 · 2507 阅读 · 0 评论 -
Android 的动作、广播、类别、附加数据、启动标记等
广播:广播:充电状态,或者电池的电量发生变化 BATTERY_CHANGED_ACTION android.intent.action.BATTERY_CHANGED 广播:在系统启动后,这个动作被广播一次(只有一次) BOOT_COMPLETED_ACTION android.intent.action.BOOT_COMPLETED 广播:语音电话的呼叫转移状态已经改变 CALL_FORWARDING_STATE_CHANGED_ACTION andro...原创 2022-02-10 14:24:54 · 248 阅读 · 0 评论 -
Android Studio 常用快捷键
快捷键又称为“热键”,多个按键的组合可以实现某些快速操作,例如Window中最常用的Ctrl+C和Ctrl+V,熟练使用快捷键可以大大提高开发效率并可以减少某些错误的发生。Android Studio也默认提供了众多快捷键方式供开发者调用,推荐使用Android Studio默认风格的快捷键。其实我们没必要一次就背下来,只需要在开发中尽量使用快捷键并打印一份快捷键表在电脑旁,经常使用和查阅,一段时间后就会形成习惯。1. Ctrl+G同时按下Ctrl+G快捷键弹出快速定位框,在框中输入行数点击OK即原创 2022-01-19 14:48:28 · 821 阅读 · 0 评论 -
repo sync 报错error: apps/xx/: branch master is published (but not merged) and is now N commits behind
在使用repo sync 的时候, 以时候会出现以上错误的时候, 使用:git branch -r获得upstream的分支信息:m/gingerbread -> umg/kernel/2.6.35.3/stable然后使用git rebasem/gingerbread -> umg/kernel/2.6.35.3/stable将发前分支变基到与upstream同步,以后再用repo sync 就没有问题了如果出现新的问题:error:apps/FamilyAl...原创 2022-01-13 11:26:37 · 674 阅读 · 0 评论 -
Android-ColorMatrixColorFilter设置图片灰色
我们在编程时有时需要对图片进行处理,比如将图片做成灰色的效果。那么就要用到android为我们提供的颜色矩阵类ColorMatrix。 先介绍一下ColorMatrix这个类,这是一个5*4的矩阵,4行5列。矩阵中存储的是ARGB,即透明度和三原色的值。ImageView iv = new ImageView(this); //getResources().getDrawable方式获取图片Drawable drawable = getResources().getDra...原创 2022-01-12 17:35:49 · 590 阅读 · 0 评论 -
android 白色透明度,Android 透明度alpha换算表
1、#ff000000 此为16进制颜色代码,前2位ff为透明度,后6位为颜色值(000000为黑色,ffffff为白色,可以用ps等软件获取)。而#ff000000的 ff(startColorstr的前两位)是代表不透明度的十六进制,00表示完全透明,FF就是全不透明,化成十进制的范围就是0~2552、透明度分为256阶(0-255),计算机上用16进制表示为(00-ff)。透明就是0阶,不透明就是255阶,如果50%透明就是127阶(256的一半当然是128,但因为是从0开始,所以实际上是12原创 2022-01-12 17:28:22 · 3412 阅读 · 0 评论 -
Android 打包生成APK文件时报lintOptions配置错误
解决办法,在build.gradle里面的buildTypes同级添加如下代码,放在android下面lintOptions {checkReleaseBuilds falseabortOnError false}checkReleaseBuilds = false; 表示不需要检查错误,生成的隐患文件错误,不需要检查,生成文件不停止aboutError = false; 关于错误信息,不需要打印错误,忽略错误信息...原创 2022-01-12 09:42:49 · 1737 阅读 · 1 评论 -
Android中Paint画图(线、虚线、矩形、多边形、圆形、曲线、半圆、三角形、旋转文字)
线圆角线参考网址:Android自定义View(二) 画圆角线_perfectnihil的博客-CSDN博客_android paint 圆角private void drawLine(Canvas canvas, float startX,float startY,float stopX,float stopY, float width,int color){ Paint paint原创 2021-12-30 18:01:18 · 4453 阅读 · 0 评论 -
Android Paint画笔
常用方法构造方法Paint mPaint = new Paint();重置画笔mPaint.reset();设置颜色mPaint.setColor(Color.RED); /setARGB(int a, int r, int g, int b)设置透明度mPaint.setAlpha(255);设置样式mPaint.setStyle(Paint.Style.FILL)Paint.Style.FILL 填充内容Paint.Style.STROKE 描边Paint.原创 2021-12-30 17:52:29 · 910 阅读 · 0 评论 -
自己常用的透明颜色
可以用到简单的xml的背景框<!--白色透明度--> <color name="translucent_white_05">#f2ffffff</color> <color name="translucent_white_10">#e6ffffff</color> <color name="translucent_white_15">#d9ffffff</color> <color name="transl...原创 2021-12-29 16:38:43 · 316 阅读 · 0 评论 -
android.permission.MOUNT_UNMOUNT_FILESYSTEMS添加权限报错
<!--这是在sd卡内创建和删除文件权限--><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /><uses-permission android:name="android.permission.WRITE_SETTINGS" />出现报错有两种解决方法:方法一:File -> Settings -> Editor -> Insp.原创 2021-07-02 16:11:21 · 2965 阅读 · 0 评论 -
Android中自定义checkbox样式
1.首先在drawable文件夹中添加drawable文件checkbox_style.xml。 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> ...原创 2016-04-15 18:26:54 · 86 阅读 · 0 评论 -
android 独立按键和菜单键 打开menu
方法一:package com.example.menutest2;import android.os.Bundle;import android.app.Activity;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view...原创 2016-04-19 11:07:43 · 329 阅读 · 0 评论 -
Android中Menu的基本用法
一、 使用xml定义Menu菜单资源文件必须放在res/menu目录中。菜单资源文件必须使用<menu>标签作为根节点。除了<menu>标签外,还有另外两个标签用于设置菜单项和分组,这两个标签是<item>和<group>。<menu>标签没有任何属性,但可以嵌套在<item>标签中,表示子菜单的形式。不过<i...原创 2016-04-19 14:15:15 · 103 阅读 · 0 评论 -
Android UI系列-----Dialog对话框
您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态。 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内容有任何疑问, 可以通过评论或发邮件的方式联系我: 501395377@qq.com / lzp501395377@gmail.com如果需要转载,请注明出处,...原创 2016-04-19 16:57:21 · 94 阅读 · 0 评论 -
AlertDialog.Builder属性集合
一、AlertDialog简介:AlertDialog的构造方法被声明为protected,所以不能直接使用new关键字来创建AlertDialog类的对象实例。要想创建AlertDialog对话框,需要使用Builder类,该类是AlertDialog类中定义的一个内嵌类。因此必须创建AlertDialog.Builder类的对象实例,然后再调用show()来显示对话框。 例如:...原创 2016-04-19 17:00:50 · 235 阅读 · 0 评论 -
activity添加Fragment 的两种方式
方法一:xml页面:里面有《fragment》标签 <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.andr...原创 2016-04-19 19:18:45 · 2248 阅读 · 0 评论 -
关于 WheelView 组件的源码分析
我们都知道,在iOS里面有一种控件------滚筒控件(Wheel View),这通常用于设置时间/日期,非常方便,但Android SDK并没有提供类似的控件。这里介绍一下如何Android实现WheelView。 代码下载 : -- GitHub : https://github.com/han1202012/WheelViewDemo.git -- CSDN : http:...原创 2016-04-20 16:55:38 · 276 阅读 · 0 评论 -
android 小知识
初始化ArrayList的两种方法:方式一: ArrayList<String> list = new ArrayList<String>(); String str01 = String("str01"); String str02 = String("str02"); list.add(str01); list.add(str02);方式二: Arr...原创 2016-04-26 16:28:17 · 112 阅读 · 0 评论 -
ViewPager实现左右无限循环效果
ViewPager自身并不支持左右无限循环的功能,在网上找了很多天,发现基本都是一个原理,就是实现一种假的无限循环,取一种最大值的思路,这一种方案在上一篇中实现过,并没有真正达到左右无限循环,只是一般情况下,很难达到边界(不可滑动)的情况。下面记录一下另一种方案,网上号称是真正的无限循环。用于显示的mViews,比数据源mList,多了两个节点元素(头节点0:b和尾节点5:e用于跳转)下图的...原创 2016-04-26 17:58:45 · 214 阅读 · 0 评论 -
AndroidViewPager禁止左滑(右滑)
package com.xba.nwwdpro.makenna.utils;import android.content.Context;import android.support.v4.view.ViewPager;import android.util.AttributeSet;import android.view.MotionEvent;/...原创 2016-04-27 16:08:04 · 187 阅读 · 0 评论