android
文章平均质量分 71
坚持就有希望
他强任他强,我是路人王!
展开
-
java.lang.IllegalStateException崩溃处理——4种情形
此文包含java.lang.IllegalStateException的4种情形: 1.java.lang.IllegalStateException: Fragment already added **2.java.lang.IllegalStateException: Fragment MyFragment{xxx} not attached to Activity ** 3.java.lang.IllegalStateException: Fragment already a原创 2020-08-12 19:33:41 · 11188 阅读 · 1 评论 -
Android开发 VideoView视频播放详解
前言 VideoView是Android主要的视频播放View,它其实是对MediaPlayer的再次封装.如果你已经了解过MediaPlayer在使用VideoView是十分简单的.如果你想先了解MediaPlayer可以参考我的博客:https://www.cnblogs.com/guanxinjing/p/11019662.html在没有复杂的要求下使用VideoView播放视频是十分快速且方便的选择.并且不需要苦恼视频尺寸的计算(说到视频尺寸计算,个人瞎折腾出了一个计算方法.虽然也可以将视转载 2020-07-27 19:26:55 · 3849 阅读 · 0 评论 -
Android高版本与低版本水波纹效果
Android API 21及以上新增了ripple标签用来实现水波纹的效果。我们可以通过设置ripple背景来实现一些View点击效果。水波纹样图1. 水波纹效果实现1)系统效果系统有界效果 在API 21以上使用,才有波纹效果;API 21以下使用只有变色效果,没有波纹效果android:background="?android:attr/selectableItemBackground"系统无界效果 在API 21以上才能使用,API 21以下会报错无法编译,最.原创 2020-07-27 19:24:02 · 353 阅读 · 0 评论 -
一张图看懂Android ,view的getTop(),getBottom(),getLeft(),getRight....
getTop():获取到的是View自身的顶边到其父布局顶边的距离getLeft():获取到的是View自身的左边到其父布局左边的距离getRight():获取到的是View自身的右边到其父布局左边的距离getBottom():获取到的是View自身的底边到其父布局顶边的距离...转载 2020-07-20 08:57:19 · 1070 阅读 · 0 评论 -
Android SharedPreference文件状态监听
通过registerOnSharedpreferenceListener方法设置监听:SharedPreferences sp = getSharedPreferences("testSP", Context.MODE_PRIVATE); sp.registerOnSharedPreferenceChangeListener(new SharedPreferences.OnSharedPreferenceChangeListener() { @Override...原创 2020-07-20 08:55:17 · 631 阅读 · 0 评论 -
Android 7.0 行为变更 通过FileProvider在应用间共享文件吧
参考https://blog.csdn.net/lmj623565791/article/details/72859156转载 2020-07-20 08:52:55 · 189 阅读 · 0 评论 -
Android国际化 地区语言和简写对照表
Arabic, Egypt (ar_EG) Arabic, Israel (ar_IL) Bulgarian, Bulgaria (bg_BG) Chinese, PRC (zh_CN) Chinese, Taiwan (zh_TW) Croatian, Croatia (hr_HR) Czech, Czech Republic (cs_CZ) Danish, Denmark (da_DK) Dutch, Netherlands (nl...原创 2020-07-12 14:31:54 · 951 阅读 · 0 评论 -
报错:ERROR: Unable to resolve dependency for ‘:app@debug/compileClasspath‘: Could not resolve XX.XX
参考https://blog.csdn.net/gs344937933/article/details/98932400转载 2020-07-12 14:30:45 · 294 阅读 · 0 评论 -
Android 使用MediaPlayer播放assets或者raw目录的音频文件
/*** 打开raw目录下的音乐mp3文件*/private void openRawMusicS(Context context) {// mediaPlayer1 = MediaPlayer.create(this, R.raw.please_get_close);mediaPlayer1 = MediaPlayer.create(context, R.raw.weige);//用prepare方法,会报错误java.lang.IllegalStateExceptio//..原创 2020-07-12 14:27:50 · 1709 阅读 · 0 评论 -
Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException:
问题复现Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find…android studio 打开新项目时出现。问题解决打开build.gradle文件,加入代码 maven { url ‘https://maven.google.com’ } 如下所示:repositories { //加入代码 maven { url 'https://m...原创 2020-07-05 10:48:05 · 19163 阅读 · 1 评论 -
[Android] ListView中如何让onClick和onItemClick事件共存
ListView中如何使用Button,让onClick和onItemClick事件共存假如ListView的一条记录包含一个TextView文本框,一个Button按钮,怎样能让点击按钮有事件响应,同时点击这条记录也有事件响应?解决方法如下:将具有点击事件控件的Android:focusable属性置成false就可以了,(如这里就是按钮的控件,只要把按钮的控件的android:focusable属性置成false);这样可以既捕捉onItemClick事件(在非button区域),又可以捕捉原创 2020-07-05 10:43:20 · 432 阅读 · 0 评论 -
Android高版本与低版本水波纹效果
Android API 21及以上新增了ripple标签用来实现水波纹的效果。我们可以通过设置ripple背景来实现一些View点击效果。水波纹样图1. 水波纹效果实现1)系统效果系统有界效果 在API 21以上使用,才有波纹效果;API 21以下使用只有变色效果,没有波纹效果android:background="?android:attr/selectableItemBackground"系统无界效果 在API 21以上才能使用,API 21以下会报错无法编译,最.原创 2020-06-29 20:07:13 · 219 阅读 · 0 评论 -
Android更换APP字体—TextView各种字体样式
第一次看澎湃新闻的客户端就觉得非常好看,可能是字体选择的好吧后来就在想怎么设置字体,如下就是在Android APP内更换字体的demo了看下我的demo:在main目录下新建assets>fonts文件夹在Windows中我的电脑输入C:\Windows\Fonts就可以将字体的文件拷贝过来设置字体样式的关键就是读到资源文件了//从asset 读取字体AssetManager mgr = getAssets();//根据路径得到TypefaceT...原创 2020-06-29 20:06:33 · 523 阅读 · 1 评论 -
android TabLayout 自动改小写为大写的问题修改
母鸡点解...我的tablayout的title明明是小写的,但是显示出来就是大写的.资源文件但是显示出来确实ON-GOING...不知道是不是我脸盲呢,On-going我知道是什么意思,但是ON-GOING我就完全认不出来了。查查看是什么原因呢...我们看style可以发现...罪魁祸首啊这里把它的字改为了全大写...我了个去。Ok,那我们写style吧~ <style name="TabLayoutTextStyle" parent="Te.原创 2020-06-29 20:05:31 · 1852 阅读 · 1 评论 -
MediaScannerConnection 刷新媒体库
MediaScannerConnectionMediaScannerConnection 作用是为应用提供一个媒体扫描服务,当有新创建或者下载的文件时,会从该文件读取元数据并将该文件添加到媒体中去。当我们添加一个文件的时候,我们需要刷新媒体库才能立即找得到添加文件,MediaScannerConnection可以为我们解决这一问题。那么我们就来看看怎么使用MediaScannerConnection 去刷新媒体库。1. 构造方法MediaScannerConnection(Context .原创 2020-06-23 12:08:40 · 808 阅读 · 0 评论 -
踩坑实录 Android studio中关于 No cached version of **** available for of处理办法
查看上图, > No cached version of com.hoge.android.core:CoreUtil:1.2.3 available for offline mode.我们需要做的是,取消红色边框标记的选项,然后 build Gradle 。原创 2020-06-23 12:04:30 · 8169 阅读 · 3 评论 -
android 8.0 报错StartForeground Bad Notification Error 解决方法
今天升级了android8.0 并且在一个8.0的系统上运行,居然报错了报错日志就是标题这个了也就是使用startForeground方法开启通知的时候报错的在android8.0后 需要给notification设置一个channelid不要问我为什么 解决方法如下//新增---------------------------------------------String CHANNEL_ONE_ID = "com.primedu.cn"; String CHANNEL_...原创 2020-06-23 12:00:35 · 1046 阅读 · 0 评论 -
Android自定义View画圆角线
自定义view时画一个线段很简单,那么如果想要画一个两端圆润的线段要怎么操作呢?@Overrideprotected void onDraw(Canvas canvas) { super.onDraw(canvas); mPaint.setStrokeWidth(30); mPaint.setStrokeCap(Paint.Cap.ROUND); canvas.drawLine(110,100,110,20,mPaint);}关键代码:mPaint.se...原创 2020-06-23 11:57:25 · 1579 阅读 · 0 评论 -
Android开发之Path详解
https://blog.csdn.net/xiangzhihong8/article/details/78278931/原创 2020-06-23 11:56:36 · 194 阅读 · 0 评论 -
Android apk方法数量限制 Error Cannot fit requested classes in a single dex file methods 67667 大于 65536
最近开发中遇到一个报错信息 如下Error: Cannot fit requested classes in a single dex file (# methods: 67667 > 65536)大致意思是Android App中的方法数超过65535时,如果往下兼容到低版本设备时,就会报编译错误,尤其在引入一些jar包和搞了一个modle进来之后容易出现这个错误,因为Android系统定义总方法数是一个short int,short int 最大值为65536,当你引入一些jar包后方法超过.原创 2020-06-23 11:53:44 · 6407 阅读 · 2 评论 -
android手机坐标系,原来我一直都没理解透
android手机屏幕的坐标系:1. 竖屏屏幕左上角为坐标系原点,坐标系如下:在屏幕内,坐标都是正值,屏幕范围内最小是0;如果出现负值,那一定是超出屏幕范围了2. 横屏横屏的时候坐标系原点仍然是左上角,如下图:这时候产生疑问,横屏时的坐标系应该有两个,顺时针旋转90度和逆时针旋转90度,对,就应该有两个:不管横屏是由竖屏顺时针旋转90度,或者逆时针旋转90度得到,都是以左上角为原点。是视觉上的左上角 ,不是空间上的左上角。比如在大多数的二...原创 2020-06-17 08:15:34 · 3147 阅读 · 1 评论 -
Android SurfaceView的基本使用
一、为什么要SurfaceView大多数情况下我们的自定义View都会选择去继承View或ViewGroup来实现,但是为什么系统还要为我们提供一个SurfaceView呢?首先我们知道View类如果需要更新视图,必须我们主动的去调用invalidate()或者postInvalidate()方法来再走一次onDraw()完成更新。但是呢,Android系统规定屏幕的刷新间隔为16ms,如果这个View在16ms内更新完毕了,就不会卡顿,但是如果逻辑操作太多,16ms内没有更新完毕,剩下的操作就会丢到原创 2020-06-17 08:12:59 · 834 阅读 · 0 评论 -
android 在string.xml 如何添加特殊符号 ———————————————— 版权声明:本文为CSDN博主「ke_csdn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上
以下为常见的ASCII十进制交换编码: --> <-- 这边是空格!-->!<--"-->"<-- xml中需要在前面加入\#-->#<--$-->$<--%-->%<--&-->&<--'-->'<--(-...原创 2020-06-17 08:12:02 · 367 阅读 · 0 评论 -
用 Android Intent 发邮件
三句话小结Intent.ACTION_SENDTO 多在发纯文本邮件时用 Intent.ACTION_SEND 邮件附件可带可不带 Intent.ACTION_SEND_MULTIPLE 发送多附件时用参考文档IntentAndroid 之调用系统 Email 发送邮件代码看上去是这个样子Intent email = new Intent(Intent.ACTION_SEND);email.setType("message/rfc822");email.putExtra(I.原创 2020-06-17 08:11:22 · 870 阅读 · 0 评论 -
Unable to resolve dependency for :app@debug/compileClasspath: Could not resolve
一般这种错都是gradle版本不对解决方法1:降低gradle版本打开gradle/wrapper/gradle-wrapper.properties,修改gradle版本为本地已下载版本。如gradle-4.4-all.zipdistributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip记得同时修改build.gradle内容:3.1.0...原创 2020-06-17 08:00:44 · 465 阅读 · 0 评论 -
Android 项目中使用kotlin (build.gradle 的配置)
现在 在Android很大一部分都开始使用kotlin 作为编程的首要语言,但是在studio 中如何使用kotlin呢?大多数人都是在直接生成的时候选择kotlin,就可以使用了。选择kotlin 作为开发的语言,如图:微信截图_20191207133134.png那么大家就要知道,如何在一个以Java未基础的项目中使用kotlin的语言进行开发,步骤如下:1.在 Android 的 project 的build.gradle 中配置如下的代码微信截图_201912..原创 2020-06-17 07:51:46 · 2878 阅读 · 0 评论 -
Android高版本联网失败报错:Cleartext HTTP traffic to xxx not permitted解决方法
前言:为保证用户数据和设备的安全,Google针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,需要使用下一代(Transport Layer Security)传输层安全协议,而 Android Nougat 和 Oreo 则不受影响。因此在Android P 使用HttpUrlConnection进行ht原创 2020-06-11 08:16:23 · 327 阅读 · 0 评论 -
android studio logcat有时候不可见如何设置
as默认选择当前进程,简单点说就是当前进程,我的理解是,如果崩溃了,进程就结束了,所以,就闪过了解决也很简单,第一种就是出现的时候点击下鼠标,logcat就会停留。第二种就是不要用选择当前的,选择no filter,如果东西太多,就加过滤,加上包名即可。如果包名出现问号导致无法过滤的话,参考我之前的文章http://blog.csdn.net/z736232402/article/details/50379111(这个可以解决挺多的,不过,还没百分百,如果还是问号,那就祝好运了。)...原创 2020-06-11 08:09:50 · 323 阅读 · 0 评论 -
Android EditView 阻止软键盘自动弹出
最近再做一个查询内的小应用,界面最上面是一个EditText查询框,进行Activity后,总会弹起软键盘。这样就挡住了查询框下面的其他查询条件 控件,感觉很不友好。所以现在要做的就是在进入Activity后,不弹出软键盘了,只有手动点击输入框才会弹出。实现方法如下:在AndroidManifest.xml里面选择那个acitivity, 把他的android:windowSoftInputMode设置成stateHidden和adjustUnspecified <activity..原创 2020-06-11 08:09:02 · 398 阅读 · 0 评论 -
Android string-array简单使用
Android中有种使用数组的非常简单的用法,在xml文件中获取。创建数组资源在value目录下创建arrays.xml文件然后在arrays.xml文件中使用<string-array>或者<integer-array>标签定义数组: <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="languages">原创 2020-06-11 08:07:49 · 2082 阅读 · 0 评论 -
android 创建文件夹和文件
目的:在APP的私有目录下,创建文件夹和文件。getExternalFilesDirs("QY-N1")是寻找Android/data/<应用包名>/files路径,"QY-N1"是子目录的名称,如果没有找到调用之后会自动生成该目录getExternalFilesDirs("QY-N1")是寻找Android/data/<应用包名>/files路径,"QY-N1"是子目录的名称,如果没有找到不会主动创建目录File file = getExternalFilesDir(".原创 2020-06-11 08:06:25 · 4201 阅读 · 0 评论 -
依赖包后出现Failed to resolve:com.github.xxx错误
原创 2020-06-09 08:19:32 · 1956 阅读 · 0 评论 -
Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveE
Android studio3.6.1导入项目经常遇到:Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all artifacts for configuration ':classpath'.解决方案,在project的build.gradle 添加红色如下:// Top-level bu原创 2020-06-09 08:17:44 · 610 阅读 · 0 评论 -
android 复制文本到剪贴板
//获取剪贴版ClipboardManager clipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);//创建ClipData对象//第一个参数只是一个标记,随便传入。//第二个参数是要复制到剪贴版的内容ClipData clip = ClipData.newPlainText("simple text", "要复制的内容");//传入clipdata对象.clipboard.setPrimaryCl原创 2020-06-09 08:17:11 · 299 阅读 · 0 评论 -
设置textView 超过多少字为省略号
//加上这三个属性android:maxEms="10"android:singleLine="true"android:ellipsize="end"原创 2020-06-09 08:16:34 · 346 阅读 · 0 评论 -
自定义AppCompatDialog样式styles
有时候为了统一app的风格需要统一app的对话框等控件,下面是项目中用到AppCompatDialog时为其统一定制样式的方法。1.首先在stytles文件中定义样式2.构建AppCompatDialog时指定样式3.最终效果https://blog.csdn.net/ngl272/article/details/52033265...转载 2020-06-04 17:25:40 · 441 阅读 · 0 评论 -
Android 手机app缓存清理实现
https://blog.csdn.net/qq_26296197/article/details/79290277https://blog.csdn.net/dubo_csdn/article/details/85719167https://blog.csdn.net/baidu_30084597/article/details/79692299https://blog.csdn.net/Awangzhanqin/article/details/82983457原创 2020-06-04 17:24:48 · 473 阅读 · 0 评论 -
Android 设置秒开全屏启动屏
如果启动页不需要更换图片:添加主题<style name="Theme.SplashTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowBackground">@drawable/splash</item> <item name="android:windowFullscreen">true</item>.原创 2020-06-04 17:23:49 · 942 阅读 · 0 评论 -
使用adb进行截图
(1)adb shell screencap -p /sdcard/screen.png(2)adb pull /sdcard/screen.png原创 2020-06-04 17:22:06 · 512 阅读 · 0 评论 -
RecyclerView网格视图
RecyclerView支持列表布局,网格布局和瀑布式布局,之前接触的都是列表布局,就是只有一列显示。其实RecyclerView的网格布局也能实现列表布局,就是在设置网格的列数的时候设置为一列,而且设置网格式布局也十分简单,几句代码就可以实现。一、 写一个RecyclerViewRecyclerView写完后,在实例化的时候设置布局管理器设置为网格布局,之前写的是线性布局。public void initRecyclerView(View view){ recycler.原创 2020-06-04 17:20:47 · 940 阅读 · 0 评论