自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Dway

You jump, I jump.

  • 博客(100)
  • 收藏
  • 关注

原创 待学习记录

1、ActivityLifecycleCallbacks2、MVP设计模式3、apache commons4、Android爬坑之旅:软键盘挡住输入框问题的终极解决方案https://www.jianshu.com/p/306482e170805、view裁剪绘制,如异形进度条6、抓traces文件:adb pull /data/anr E:\\aaa7、Fiddler抓包...

2020-05-07 08:31:14 325

原创 Glide加载webp动画及监听动画播放结束

Glide加载图片非常方便,使用也非常广泛,但是并不能直接支持webp动图。可能很多人会使用Fresco来加载webp,但是对于已经使用Glide的项目,总感觉再使用Fresco有点冗余,如果能用Glide来加载webp那将非常方便。而github上也确实存在webpdecoder这样一个库支持加载webp。具体使用方式总结如下:一、首先加入依赖//Glide库 //implementation 'com.github.bumptech.glide:glide:4.7.1'

2021-08-23 21:23:38 4033

原创 错误:卡在Download maven-metadata.xml...很久

一、问题描述:同步时候卡在Download maven-metadata.xml...,半个小时后提示以下错误:Starting Gradle Daemon...Gradle Daemon started in 5 s 892 msIOException: https://dl.google.com/android/repository/addons_list-3.xmljava.net.ConnectException: Connection refused: connectIOExce

2021-08-04 16:51:48 2372

原创 EditText光标和文本选中样式自定义

1、先上效果图:<EditText android:textColor="#212121" android:textSize="24sp" android:textCursorDrawable="@drawable/shape_cursor_0080ff" android:textColorHighlight="@color/colorff0080ff" android:.

2021-06-18 14:07:34 1029 1

原创 TextView中drawable和text整体居中

1、效果如下:2、xml代码:<TextView android:id="@+id/duration" android:layout_width="wrap_content" android:layout_height="30dp" android:background="@drawable/shape_4d000000_15_bg" android:paddingStart="12dp" a

2021-04-09 21:17:36 3450

原创 Constraintlayout使用问题归纳

Constraintlayout使用问题归纳1、设置比例设置宽高比为1000:440,需要把layout_width和layout_height都设置为0dpandroid:layout_width="0dp"android:layout_height="0dp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintTop_to

2021-03-22 14:23:35 186

原创 布局中Button总是显示在最顶层问题

从Android SDK 21(即5.0)开始,Button控件按下自带阴影效果,阴影效果相当于是在Z轴的一个分量,所以导致Button总是在最顶层显示。因此解决这个问题最简单办法就是去掉阴影效果,加上以下代码即可:android:stateListAnimator="@null"或者干脆直接用TextView代替Button使用,因为Button实际也是继承TextView。...

2020-11-20 08:46:09 2028

原创 TextView设置指定字符串为指定颜色

使用:textView.setText(getColorSpannableString("我是中国人,我爱中国", "中国", Color.parseColor("#FF6A00")));直接调用静态方法,句子中所有“中国”字体都会高亮,以下为静态方法:/** * 设置整个字符串中的指定字符串的为指定颜色 * @param origin 原字符串 * @param colorStr 需要设置高亮的字符串 * @param color 高亮的颜色

2020-11-17 14:40:13 477

原创 TextView文字图片混合显示并设置点击事件

例如TextView显示文字,文字最后显示一个小图片,代码如下:TextView textView = findViewById(R.id.text); SpannableString spannableString = new SpannableString("中华人民共和国 "); Drawable drawable = getResources().getDrawable(R.drawable.icon); drawable.setBounds(0

2020-08-25 19:40:44 735

原创 EditText禁止自动弹出软键盘

测试有效的做法就是让EditText的父布局获取焦点,就达到效果,所以在父布局添加:android:focusable="true" android:focusableInTouchMode="true"网上还有很多方法,暂时没验证。...

2020-03-06 08:42:23 402

原创 ProgressBar使用

布局:<ProgressBar android:id="@+id/dialog_loading_progressbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:indeterminateDrawabl...

2020-03-04 15:53:30 203

原创 View显示和隐藏动画效果

View显示和隐藏想要有过渡动画效果,可以直接在父布局中添加android:animateLayoutChanges="true"那么view在VISIBLE和GONE时候就会自带动画效果。

2020-01-16 16:59:53 2547

原创 Java反射

例如有个类如下:class Person{ private static int count; private String name; public Person(String _name) { name = _name; } }1、获取和设置静态变量的值:try { ...

2020-01-06 20:05:13 128

原创 播放器常用手势操控封装GestureView

一、播放器常用手势操控包括:1、单击显示和隐藏播放器控件;2、双击播放暂停;3、左侧上下滑动调节亮度;4、右侧上下滑动调节音量;5、左右滑动调节进度。二、手势检测帮助类PlayerGestureHelper。用于检测区分手势类型。代码如下:package com.dway.gesture;import android.content.Context;i...

2019-10-17 20:16:05 735 2

原创 不规则按钮

实现思路是点击时候去判断该点的像素值,如果是透明的则认为没有点击。代码如下package com.dway.widget;import android.annotation.SuppressLint;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Color;...

2019-10-11 16:44:18 479

原创 图库开发相关记录(未完待续)

1、系统媒体库存放位置data/data/com.android.providers.media/databases/,目录下一般有external.db和internal.db。注意机器必须为debug版本的才能看到。2、读取媒体库方法Cursor cursor = getContentResolver().query( MediaStore.Image...

2019-07-06 14:31:24 560

原创 修改打包的APK文件名

有时打包的APK需要指定名字,比如需要APK带上release或者debug,带上版本号,带上打包日期等,虽然APK打包完后可以自己修改名称,但是还是有更好的方式的。可以直接在主module中的gradle加入如下代码:android { android.applicationVariants.all { variant -> ...

2019-06-19 20:47:05 2225

原创 系统应用Gallery2编译过程记录

一、代码对比D:\AndroidStudioProjects\Gallery2和X:\ldw\android7_0\packages\apps\Gallery2二、SecureCRT 编译cd work/ldw/android7_0source build/envsetup.shlunch选11. msm8937_64-userdebugcd packages/apps/...

2019-05-22 14:33:15 423

原创 编译ijkplayer

ijkplayer默认编译好的so比较局限,比如不支持https、不支持rmvb等。要想兼容只能自己进行编译。编译步骤:一、准备Linux环境需要在Linux中编译,例如我的Linux版本为Ubuntu 16.04。二、安装Git和yasmsudo apt-get install gitsudo apt-get install yasm注意,需要连接网络,如...

2019-05-18 17:32:03 512

原创 批处理:批量删除文件名前N个字符

可以把当前目录所包含的所有文件(包括子目录下的文件)进行文件名修改,去掉文件名前N个字符。比如当前目录下的文件如下:aa12345.txtbb12345.txtabc/cc12345.txtabc/def/dd12345.txt希望得到的结果如下:12345.txt12345.txtabc/12345.txtabc/def/12345.txt...

2019-04-20 15:28:58 31266 9

原创 try-with-resources语句

所谓try-with-resources语句就是在try后面加上resources,跟平常见到的try-catch语句有差别。先看个例子:File srcFile = new File(srcPath);File dstFile = new File(dstPath);try (FileInputStream fis = new FileInputStream(srcFile); ...

2019-02-13 17:15:47 1028

原创 通过事件拦截控制布局所有子view是否可响应手势操作

有时候需要控制一个布局下所有子view是否可以Click、Touch,例如不让布局下的SeekBar、Button等响应拖动和点击事件。可以通过事件拦截简单实现,在父布局中对事件进行拦截,那么其子view将不会获得Touch事件,也就无法响应Click和Touch了,对SeekBar而言则无法拖动、Button而言则无法点击。package com.dway.test;import ...

2019-01-17 17:09:02 1122

原创 存储设备挂载和卸载监听StorageReceiverHelper

一、监听存储设备挂载和卸载的帮助类:package com.dway.receiver;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import an...

2018-12-03 20:49:06 505

原创 常用在线工具和网站

1、色值在线http://www.atool.org/colorpicker.php/2、Json在线http://json.cn/3、在线时间戳转换工具http://tool.chinaz.com/Tools/unixtime.aspx4、在线正则表达式测试http://tool.oschina.net/regex/5、在线画流程图http://jgraph....

2018-10-16 09:54:11 386

原创 Android自适应基础

Android系统开放,设备众多,自适应是个很麻烦的工程。不仅不同系统版本的适应,最头痛的还是不同分辨率、不同像素密度的适配。网上有很多谈自适应技巧的文章,有些可能看着不是很理解甚至有些带着坑,所以有必要先对一些基础概念有所了解,再谈自适应吧。 一、首先解释一个概念:屏幕密度1、解释:英文表述为dpi:dots per inch,或者PPI:pixels per inch。意思很明显是...

2018-09-22 10:00:14 1077

原创 Android正确获取屏幕像素和密度等

Android如何准确获取屏幕宽高、密度。需要注意在不同版本有点区别,4.2增加虚拟导航栏,导致旧的方法获取的屏幕高度不包括导航栏。所以需要区分版本去获取。顺便提下,这货WindowManager windowManager = activity.getWindowManager()跟这货WindowManager windowManager = (WindowManager)co...

2018-09-21 19:55:37 5208

原创 图片加载显示框架Glide使用

开发应用,经常需要加载网络图片来显示。如果自己去下载后显示出来,遇到大量的图片显示,处理有些麻烦,缓存也可能会很大。当然这些都可以想办法处理,但是需要耗费很多时间。所以有很多第三方的框架,实现了这些功能,能自动加载图片并显示,也能控制缓存大小,甚至可以根据界面的生命周期自动加载和暂停,使用非常方便。以前使用过Picasso框架好长一段时间,但是非常小的概率会测到图片显示一半的情况。...

2018-09-13 19:18:15 241

原创 Dialog简单实现

以一个有确定和取消的简单dialog为例1、dialog代码如下:package com.dway.dialog;import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.support.annotation.NonNull;import a...

2018-09-12 16:15:34 461

原创 打印工具类LogUtil

一、Android打印日志,一般做法都是在类中定义一个常量Tag,并且每次打印都需要输入tag。这样做法有好多弊端:1、效率太低。2、开发完想要去掉打印的话,那还得一个一个找出来并屏蔽掉,特别麻烦。3、打印不规范,特别是经过多个开发者手,打印风格那是五花八门的,分析起来累。 二、根据以上问题,设计了一个打印工具类LogUtil,具备以下功能:1、有个统一风格。2、不...

2018-09-12 15:55:59 2094 1

原创 Fiddler抓包

一、什么是Fiddler(已了解的可以跳过)1、Fiddler能干什么:举个例子:你想抓取电脑浏览器打开一个网页时候详细访问了些什么地址,或者手机在运行某个应用的时候访问了些什么地址。特别是在开发应用,想要分析一些http请求的时候特别有用。2、Fiddler是什么:Fiddler可以理解为一个Http代理服务器的工具,在浏览器进行http请求都会通过Fiddler代理,这样就可以...

2018-09-12 15:29:45 16510 2

原创 Android音频焦点AudioFocus处理

音频焦点是Android系统统一音视频播放的一个规则,避免多个应用同时在播放音视频,导致声音很杂。如果大家都按照这个规则进行开发,那么当你获取焦点进行播放时,其他正在播放的应用就会失去焦点暂停播放,这样体验会好很多。但是实际上这规则并不具有强制性,所以也会有很多不按套路出牌的应用存在着,这里仅讨论怎么按套路出牌。一般音视频应用需要完成以下三步,可以根据实际需要,但是建议尽量按照常规处理...

2018-09-11 15:45:31 3114

原创 使用Git对代码进行版本控制

版本控制的大致流程:1、初始本地仓库:git init2、添加文件:git add .3、提交:git commit -m "这是提交说明"4、远程也创建一个对应仓库,例如在github或者gitee上面创建仓库5、把本地仓库和远程仓库关联,例如Gitee:git remote add origin [email protected]:dwaylin/Test.git6、把本地分支......

2018-09-08 16:11:46 1279 1

原创 surface.nativeUnlockCanvasAndPost发生IllegalArgumentException错误的解决方法

记录SurfaceView使用的一个错误解决方法。错误打印:09-03 20:04:49.543 15962-16033/com.dway.mediaplayer E/Surface: queueBuffer: error queuing buffer to SurfaceTexture, -19 queueBuffer (handle=0x7f789d0d20) failed ...

2018-09-03 20:43:26 1829

原创 软键盘挡住WebView中输入框解决方法

如果是EditText,弹出软键盘好处理,会自动把输入框顶上来。但如果输入框实在WebView中,那就不好处理了。什么设置android:windowSoftInputMode属性之类的都无效,最后再这里找到了终极解决方法,测试过有效。附上链接:https://www.jianshu.com/p/306482e17080,感谢博主分享。里面已经描述听详细的了,这里我也把该方法记录下来。其实这是An...

2018-05-29 20:22:18 8982 9

原创 扩大CheckBox点击区域两种方法

扩大点击区域,首先想到的是加个padding,代码如下:&lt;CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:background="@android:co...

2018-04-26 10:31:42 10367

原创 TextView文字和背景点击效果

文字按钮一般用TextView来实现,其中文字有按下效果,背景为圆角矩形且也有按下效果。一、使用&lt;TextView android:textColor="@drawable/btn_text_selector" android:background="@drawable/btn_bg_selector"/&gt;二、btn_te...

2018-03-24 15:10:22 8264 2

原创 字符串相关问题以及string.xml中注意的问题

一、如果需要显示一些带变量的字符串,例如 "第1课时  手把手教你写代码  第2小节" ,这样的字符串时,可在string.xml中定义:&lt;string name="section"&gt;第%1$d课时  %2$s  第%3$d小节&lt;/string&gt;其中每个空格需要用转义代替为&amp;#160;,具体的代码会自动提示可转义的地方。注意多个变量时,需要使用1 2 3区别出来。...

2018-03-22 19:52:35 229

原创 设置单点触控splitMotionEvents

一、全局单点触控,在主题theme中添加以下内容,整个应用只能单点触控:&lt;item name="android:splitMotionEvents"&gt;false&lt;/item&gt;二、某个界面需要单点触控的话,直接在布局xml文件中设置:android:splitMotionEvents="false"...

2018-03-14 22:01:58 1872

原创 Handler正确用法

 使用Handler时,如果直接定义为Activity中,会出现以下警告:The following Handler class should be static or leaks might occur...主要是Handler持有Activity的引用,会有导致内存泄露的风险,所以可通过以下方式可以消除错误提示:private Handler mHandler = new Handler(ne...

2018-03-14 20:24:53 789 3

原创 SeekBar进度和缓冲进度使用

主要简单记录SeekBar的使用,例如视频播放进度条,不仅要显示播放进度,还要显示缓冲进度,以下做下简单说明。一、使用SeekBar的布局&lt;SeekBar android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" ...

2018-03-14 11:24:25 5003 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除