Android
文章平均质量分 62
u013394527
这个作者很懒,什么都没留下…
展开
-
Android Studio/IntelliJ 重复导入@Nullable/@NonNull 的解决办法
问题描述 自从更新Android Studio 4.2.2版本出现的这个问题,使用AS自动填充代码后发现重复导入了@Nullable,如下图: 而Nullable这个注解又被多家大厂自行定义,如下图修复方法步骤:第一步:按顺序依次打开 Android Studio -> Settings -> Ed原创 2021-09-13 19:47:40 · 701 阅读 · 0 评论 -
Animator动画引起的内存泄漏分析
一、Animator 相关的问题Animator 是做什么的? 有哪些实现类?Animator 的核心实现原理?Animator 为何会引起内存泄漏?如何避免 Animator 引起的内存泄漏?二、回答问题1、Animator 是做什么的? 有哪些实现类?Animator 是安卓动画框架的基类,这个基类抽象出与动画功能相关的通用方法,如start()、end()、cancel()、pause()、resume()、addXXXListener() 等核心通用方法,但因为它是抽象基类,所以原创 2021-07-21 20:57:28 · 1891 阅读 · 1 评论 -
layout_constraintWidth_percent in java
在xml里写的layout_constraintWidth_percent=“0.4”app:layout_constraintWidth_default="percent"app:layout_constraintWidth_percent="0.4"在java中可以这样写mConstraintLayout = (ConstraintLayout) findViewById(R.id.myconstraint_layout)ConstraintSet set = new Constraint原创 2020-10-20 10:58:58 · 5002 阅读 · 0 评论 -
安卓ImageView镜像翻转
android:scaleX = -1 可用来 水平镜像翻转android:scaleY = -1 可用来 垂直镜像翻转原创 2020-10-17 13:26:20 · 6309 阅读 · 6 评论 -
ConstraintLayout跟随吸附效果
一、需要的效果如下图,当前中间的 TextView 内容太长时,不允许把右边的 性别图标 挤的不见了。二、解决方法重点: app:layout_constrainedWidth=“true”<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/andro原创 2020-10-15 18:05:01 · 664 阅读 · 0 评论 -
alpha小数与16进制数值映射表
在客户端开发时,有些设计师的设计工具提供的alpha是[0.0 , 1.0] 的小数, 而安卓 、iOS的编程语言使用的是16进制,这时通常是自己用 计算器 转换一下。转换方法 如下:例如 alpha = 0.5,则 0.5*255 = 127.5, 16进制里没有小数,四舍五入后为 128,注意是 10进制 里的128,转成 16进制就是 80;注意 alpha 是表示 【不透明度】,可以直观理解为【理解的比重】,比重为0表示 无颜色、即完全透明;比重为1表示 完全填充、即完全不透明。百分比对原创 2020-10-15 10:32:38 · 2048 阅读 · 0 评论 -
安卓播放透明视频、Alpha视频
适用于安卓开发 的直播间全屏礼物、弹屏广告等场景。源视频 左侧一半为 彩色信息,右侧一增为黑白视频 用于 替换左侧的透明试,白表示 alpha=1,黑表示 alpha=0.另外,代码里 支持左右的切换,也就是说 你可以让 彩色部分位于右边,黑白部分位于左边。项目的所有源码在这里https://github.com/meikaiss/giftvideoplayer源视频文件播放时的效果图如下:处理后的播放效果如下,播放效果 是具有 透明度的...原创 2020-09-21 14:05:07 · 2158 阅读 · 1 评论 -
面试不慌Handler
一、Handler的重要性handler作为高级安卓面试必问问题之一,其重要性不言而喻。 它对上层应用开发的影响无处不在, 例如 handler内存泄漏、线程通信、消息循环模式、数据库操作应该放在哪个线程、handler.handleMessage能否执行耗时任务、屏幕触摸事件分发机制、Animator动画机制、Activity启动流程… …跟handler有关的东西无处不在,但凡是安卓java层的东西几乎都能跟handler扯上一点关系。全面的理解Handler需要涉及到android系统的许原创 2020-07-16 19:53:38 · 420 阅读 · 0 评论 -
okhttp3宏观介绍及基础回顾
一、简介1.1 okhttp是什么? okhttp是由美国square [square是什么] 公司开发的,用于安卓和java应用程序的 HTTP+HTTP/2的客户端。1.2 最新的版本 目前最新版本为 okhttp3,可以从这个链接获取最新版本的okhttp3的版本号及maven构件地址: https://mvnrepository.com/artifact/com.squareup.okh原创 2020-05-23 17:39:11 · 1231 阅读 · 0 评论 -
Android 应用崩溃后重启的机制
一、出现的场景 在开发过程中,想必你也一定遇到过这样的问题,当我们的应用发生Crash时异常退出,然后又自动启动跳转到未知页面,此时应用在崩溃前保存的全局变量被重置,用户状态丢失,显示数据错乱。更让我们头疼的是,这种崩溃后重启的情况,并不是每次都会遇到,那么究竟是因为什么呢? 经测试,在 Android 的 API 21 ( Android 5.0 ) 以下,Crash 会直接退出应用,但...原创 2019-12-13 15:23:47 · 1668 阅读 · 1 评论 -
android emoji吏上最全的详解
emoji基本介绍用unicode表示emojiunicode 与utf-8、utf-16的关系分享两个分析emoji的工具unicode编码表查询: https://unicode-table.com/en/#1F600 点击快速访问此链接提取字符串中的所有unicode字符并去重: https://apps.timwhitlock.info/unicode/inspect...原创 2019-11-12 23:58:01 · 10024 阅读 · 0 评论 -
Android canvas save restore saveLayer的异同点
一、canvas常用绘制方法:文本canvas.drawText填充drawARGB(int a, int r, int g, int b)drawColor(int color)drawRGB(int r, int g, int b)drawColor(int color, PorterDuff.Mode mode)几何图形canvas.drawArc (扇形)canvas...原创 2019-11-08 10:00:44 · 460 阅读 · 0 评论 -
mac捕获android任意应用的view视图
一、uiautomatorviewer 介绍 iautomatorviewer是android SDK自带的一个元素定位工具。通过截屏并分析XML布局文件的方式,为用户提供控件信息查看服务。使用uiautomatorviewer,你可以检查一个应用的UI来查看应用的布局和组件以及相关的属性。该工具位于SDK目录下的tools\bin子目录下。二、效果图下...原创 2019-11-07 09:56:41 · 541 阅读 · 0 评论 -
Android危险权限的动态申请,6.0和8.0的区别
Android6.0系统运行时权限Android 6.0版本(Api 23)将权限分为普通权限和危险权限,危险权限需要在使用时让用户手动允许。对于普通权限,只需要在manifest.xml文件中声明,即可以代码中直接使用。对于危险,不仅仅需要在manifest.xml文件中声明,还需要在java代码调用requestPermissions来动态申请。注意如果不在manifest中声明,而是...原创 2019-10-28 12:08:46 · 1197 阅读 · 0 评论 -
Android Studio任意位置折叠代码
在Android Studio中 方法块、import区、{ }大括号块 都会自动 代码折叠的 +号按钮, 这有利用开发者只关注核心逻辑,提高效率。 但有时我希望其它区也能使用 折叠功能,比如 ButterKnife的BindView区的 自动绑定view的代码对...原创 2019-10-16 11:55:12 · 1045 阅读 · 0 评论 -
Android 9patch 实例详细介绍
网上看了许多 讲解 9妹图的 博客,感觉有些地方跟自己的理解有点出入,特地拿来研究一翻,并记录心得,原创 2014-07-20 15:02:43 · 912 阅读 · 0 评论 -
安卓录音amr文件在PC端进行格式转换和播放
安卓录音amr文件在PC端进行格式转换和播放。原创 2014-08-04 19:54:06 · 4553 阅读 · 0 评论 -
android实现背景平铺的三种方法
方法1: 系统api实现Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pic); //bitmap = Bitmap.createBitmap(100, 20, Config.ARGB_8888); BitmapDrawable drawable = new BitmapDrawa原创 2014-11-12 20:15:17 · 637 阅读 · 0 评论 -
安卓程序员必须知道的网站
1、https://android-arsenal.com/2、http://www.trinea.cn/3、http://developer.android.com/training/index.html4、http://www.devstore.cn/5、http://www.iteye.com/blogs/category/mobile原创 2014-11-13 21:24:39 · 710 阅读 · 0 评论 -
Failed to find style 'vpiCirclePageIndicatorStyle' in current theme
使用 ViewPagerIndicator 时 , 布局原创 2014-11-15 00:11:04 · 6518 阅读 · 0 评论 -
Android TextPaint 写文字 水平、垂直居中
在宽width高height的画布上画一字符串,使字符串水平竖直居中: 水平居中很简单,paint.setTextAlign(Align.CENTER);然后drawText的x坐标设置为width / 2即可,竖直居中稍显麻烦,可以使用FontMetrics对象计算文字高度,然后计算baseline,使文字垂直居中,代码如下: Paint paint = new Pain原创 2014-11-16 23:38:34 · 8683 阅读 · 0 评论 -
px 与 dp, sp换算公式
虽然 早已 知道 dp 大小写PPI = Pixels per inch,每英寸上的像素数,即 "像素密度"xhdpi: 2.0hdpi: 1.5mdpi: 1.0 (baseline)ldpi: 0.75drawable-ldpi、drawable-mdpi、drawable-hdpi 精度分别为低、中(android默认)、高。对应的图片大小为原创 2014-11-16 23:52:37 · 818 阅读 · 0 评论 -
android:点击popupwindow以外区域 popupwindow自动消失
方法一(这种方法可以处理popupwindows dimiss的时候一些其他的操作,比如让其他控件的隐藏,消失等):代码如下popupWindow.setFocusable(false);//focusable要为false(不设置默认的就是False);//这是Activity 的OnTouchEvent。OnTouchEvent代表的是Activity 获得事件(即为PopupWind转载 2014-11-17 00:37:36 · 464 阅读 · 0 评论 -
安卓 ListView Button、CheckBox、RadioButton 点击事件 覆盖的问题
这两天在捣鼓ListView widget,为了在ListView中加入Button这类的有 “点击” 事件的widget,请教了不少高手,感谢LandMark对我的认真讲解,下面把解决过程描述一下。 ListView 和 其它能触发点击事件的widget无法一起正常工作的原因是加入其它widget后,ListView的itemclick事件将无法触发,被其它widget的click事件屏原创 2014-10-15 14:55:45 · 2233 阅读 · 0 评论 -
弃用TabActivity,使用FragmentActivity实现
TabActivity在API 13(Android 3.2)被标记为过期,需要使用Fragment来实现,Fragment是Android 3.0引入的一个概念,主要就是为了适应各种不同的屏幕大小(手机、平板电脑)。Android 4.1发布时,google还发布了一个Android Support v4的包,用于Android 1.6以上的系统兼容新的特性,其中包括Fragment。为了在低于转载 2014-11-19 22:08:00 · 4297 阅读 · 0 评论 -
Drawable 的 子类
从Drawable的继承结构上看,还有几个没有介绍到。1、ColorDrawableColorDrawable使用很简单,使用元素就可以定义一个ColorDrawable,然后再其他的地方使用。在color.xml文件中定义:[java] view plaincopy"1.0" encoding="utf-8"?> "http://schemas.andr原创 2014-11-23 16:08:16 · 772 阅读 · 0 评论 -
安卓自定义控件、自定义xml里的属性的用法
在android相关应用开发过程中,固定的一些属性可能满足不了开发的需求,所以在一些特殊情况下,需要自定义控件与属性,本文将以此问题进行详细介绍,需要的朋友可以参考下。原创 2014-11-22 22:00:11 · 771 阅读 · 0 评论 -
安卓用代码来实现selector
android可以通过XML文件来创建selector,以Drawable对象的形式安装到组件上,以提供统一的风格设置。但是在某些时候,我们需要通过代码的形式来实现相同的功能,例如组件数量非常多,对应不同的图片,这时候如果还用XML的话就需要创建大量的selector文件,非常繁琐。 例如一个TextView使用了如下的selectorTextView原创 2014-11-23 15:55:40 · 566 阅读 · 0 评论 -
Java中HashMap遍历的两种方式
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val = entry原创 2014-11-23 20:38:13 · 461 阅读 · 0 评论 -
PullToRefresh实现下拉刷新和上拉加载
下拉刷新下拉刷新 太大众化了, 有很多例子,就不再多说了。上拉加载如果你不想再费时间去自己写一个上拉加载,不妨试一下PullToRefresh自带的上拉效果哦!PullToRefresh本身支持下拉刷新和上拉刷新,所以我们只需要将上拉刷新改成上拉加载就行了。原创 2014-11-23 19:55:47 · 617 阅读 · 0 评论 -
daemon not running.starting it now on port 5037 *
安卓开发时,在windows 的cmd 命令中使用 adb 命令时,经常会碰到 下图的的情况 adb shell时出现以下信息: * daemon not running. starting it now on port5037 *解决方法:输入下面的命令:netstat -ano | findstr"5037" 可以查询什么占用了5037端口,再通过原创 2014-12-07 11:59:45 · 124555 阅读 · 0 评论 -
安卓 ProgressBar 显示小数的方法
最近项目要求下载进度提示对话框 要有单位 KB,通过查看源码 发现android框架是提供了 这样的方法的 setProgressNumberFormat()但是这个方法 貌似对版本无效比如2.3 具体代码如下[java] view plaincopydownloadDialog = new ProgressDialog(ctx原创 2014-12-19 14:24:29 · 4398 阅读 · 0 评论 -
安卓金币字符串转换成三位一个逗号的格式
DecimalFormat df1 = new DecimalFormat("###,###,###,##0.##"); return df1.format(Double.parseDouble(“ 17352208.25 ”));输出 17,352,208,25原创 2014-12-08 02:50:31 · 708 阅读 · 0 评论 -
VS2010 实用快捷键
1、代码格式化 先按 Ctrl + K ,再 按 Ctrl + F 或者 先 全选 后 剪切,再粘贴; 如果上面的两个方法都没有用,说明代码里 有 编译期错误, 应该是会 编译失败的Ctrl+E,D ----格式化全部代码 Ctrl+E,F ----格式化选中的代码 2、删除一行 Ctrl + L , 另外 删原创 2014-12-03 21:29:34 · 548 阅读 · 0 评论 -
Android 软键盘监听事件
Android是一个针对触摸屏专门设计的操作系统,当点击编辑框,系统自动为用户弹出软键盘,以便用户进行输入。 那么,弹出软键盘后必然会造成原有布局高度的减少,那么系统应该如何来处理布局的减少?我们能否在应用程序中进行自定义的控制?这些是本文要讨论的重点。 一、软键盘显示的原理 软件盘的本质是什么?软键盘其实是一个Dialog! InputMetho转载 2014-12-09 21:28:36 · 592 阅读 · 0 评论 -
安卓开发的无线adb
你还在为没有数据线,而无法拷贝电脑上面的文件儿发愁呢?现在我有一个小方法说不定可以帮助某些人哦(多为不是android开发人员)1. 条件如下:android 手机 wifi无线连接电脑有网2. 在电脑上面下载一个adb (350~500KB) http://www.filecrop.com/adb.rar.html用手机下载一个”无线adb”原创 2014-12-01 23:39:44 · 759 阅读 · 0 评论 -
android 兼容API的检查
读之前可以了解一下api levels的知识:Android中文翻译组的:Android开发者指南(10) —— Android API Levels一,使用高版本API要注意的问题在项目开发中:由于经验和其他条件的制约,如没有查看API出现的版本,对过时API没有作兼容等等。可能出现下面的问题:当你的代码使用一个高版本的API,应转载 2014-12-11 19:18:16 · 1129 阅读 · 0 评论 -
DecimalFormat用法
DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。DecimalFormat 包含一个模式 和一组符号 符号含义: 0 一个数字 , 注意:当0作为小数位点位符时,如果小数位没有值,则会自动填充0# 一个数字,不包括 0 , 注意:当#作为小数位点位符时,如果小数位没有值,则此位结果也无值。 注意与 0的区别原创 2014-12-14 23:48:30 · 446 阅读 · 0 评论 -
android GPS开启方法 代码
转自:http://www.learningandroid.net/blog/advance/programmable-toggle-gps/手机应用中最酷的可能就是位置服务相关的了,如何读取GPS信息,在官方文档上有相当详细的说明,后面如果有机会,我也会专门写例子来介绍(教程已完成,请参见:教程:实现Android的不同精度的定位(基于网络和GPS))。但今天,我们先来看下如何以编程转载 2014-12-31 17:29:25 · 4109 阅读 · 0 评论 -
TextView 自带的跑马灯效果
布局文件里的 写法 如下: android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="这是纯TextView的跑马灯这是纯TextView的跑马灯这是纯TextView的跑马灯" android:b原创 2015-03-18 17:08:23 · 796 阅读 · 0 评论