Java、Android
小小米乐
这个作者很懒,什么都没留下…
展开
-
Android插入短信功能
公司内部有过需求 需要插入通过自己app插入短信刚开始觉得挺简单的,就是往数据库加数据而已,插入短信ContentResolver resolver=getContentResolver(); Uri url=Uri.parse("content://sms/"); ContentValues values=new ContentValues(); values.put("addre原创 2021-12-31 16:21:14 · 865 阅读 · 0 评论 -
Android 9.0以后默认http://请求不支持
Android 9.0以后默认http://请求不支持原因引文在Android 9.0以前 AndroidManifest.xml中的application节点中的usesCleartextTraffic属性默认就是true,而9.0之后改为了false,需要让开发这使用加密的请求地址 https .解决方案一、使用https地址。二、在AndroidManifest.xml中的application节点添加如下属性android:usesCleartextTraffic = true..原创 2021-05-26 17:29:55 · 211 阅读 · 0 评论 -
Android 适配暗黑模式
在样式中添加<style name="MyAppTheme">....... <item name="android:forceDarkAllowed">true</item></style>原创 2021-04-02 16:05:59 · 217 阅读 · 0 评论 -
Android 基础知识梳理 View的绘制
哎 被懒惰打败了原创 2021-04-01 17:41:10 · 102 阅读 · 0 评论 -
Android事件分发的时候dispatchTouchEvent 中最好不要return true; return false;
Android事件分发的时候dispatchTouchEvent 中最好不要return true; return false;这样会造成子控件中的滚动事件跳动,如listview 滑动前会调动一下,很难受。原创 2021-03-26 10:44:14 · 694 阅读 · 0 评论 -
Android加载配置文件的几种方法
Android 中有些配置文件需要在代码外面有一下几种:一、放入了 app/src/main/assets文件中 //加载配置文件 Properties props = new Properties(); InputStream inputStream = context.getAssets().open("config.properties"); props.load(inputStream); String value = props原创 2021-03-24 11:25:19 · 1011 阅读 · 0 评论 -
java两整数相除等于0
float i = (float) (300/600); System.out.println(i);结果是什么? 我本来想要0.5的,结果为0float i = ((float) 300/600); System.out.println(i);这样就能得出我们要的结果了。原创 2020-12-02 17:58:50 · 1269 阅读 · 0 评论 -
Android studio 中 引用第三包包含com.android.support 与Androidx 包里类冲突问题解决方案
直接上代码在第三方包中去除 exclude group: ‘com.android.support’implementation ('com.github.bumptech.glide:glide:4.8.0'){ exclude group: 'com.android.support' } implementation ('com.google.zxing:core:3.2.0'){ exclude group: 'com.android.support原创 2020-11-10 11:25:08 · 800 阅读 · 1 评论 -
Android Glide.3x的版本升级到Glide4.8.0的问题
加载圆形图片修改Glide.with(context).load(list.get(position).getImgsrc()) .apply(RequestOptions.bitmapTransform(new CircleCrop())) .into(holder.img);其它参考:GLIDE3升级到GLIDE4碰到的问题汇总以及部分代码修改...原创 2020-11-09 17:44:22 · 180 阅读 · 0 评论 -
java.lang.IllegalStateException: Not one of standard directories: /data/user/0/
Android 10以上使用Environment.getExternalStorageDirectory()会报错:java.lang.IllegalStateException: Not one of standard directories: /data/user/0/推荐使用:Environment.DIRECTORY_DOWNLOADS原创 2020-10-14 17:53:28 · 1531 阅读 · 0 评论 -
ToolBar中菜单menu item图标颜色修改
@Override public boolean onCreateOptionsMenu(Menu menu) { final MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.quickcontact, menu); for(int i = 0; i < menu.size(); i++){ Drawable drawable = men原创 2020-08-25 17:20:56 · 1759 阅读 · 0 评论 -
Android 获取主题是不是暗黑主题,或者是不是深色主题
final boolean active = (getApplicationContext().getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_YES)!= 0;active 为true 就是深色主题原创 2020-08-21 14:32:07 · 1844 阅读 · 0 评论 -
Activtiy之间数据通信3种方式
Activity 之间数据通信 Intent / bundle第一个activity跳转代码 Bundle bundle = new Bundle(); bundle.putString("name","mile"); bundle.putInt("age",18); Intent intent = new Intent(this,MainActivity.class); intent.putExtras(bundle);原创 2020-08-19 17:59:38 · 278 阅读 · 0 评论 -
Activtiy生命周期
Activity任务栈与四种形态一、Active:Activity 处于栈顶,可见状态、和用户可以交互二、Paused:可见但不可交互,只是失去了与用户交互的能力(被透明窗体覆盖)三、Stopped:不可见四、Killed:被系统回收小结:1、Activity是与用户交互的接口,2、Android 系统是通过Activity栈的形式来管理Activity3、Active/Paused/Stopped/killedActivity正常情况下生命周期回调方法onCreate–onStart原创 2020-08-19 14:59:01 · 262 阅读 · 0 评论 -
CollapsingToolbarLayout 中 contentScrim属性可以控制toolber折叠后的背景颜色
CollapsingToolbarLayout 中 contentScrim属性可以控制toolber折叠后的背景颜色app:contentScrim="@color/actionbar_icon_color"<CollapsingToolbarLayout android:id="@+id/collapsing_toolbar_layout" android:layout_width="match_parent" andr原创 2020-08-07 16:13:40 · 1731 阅读 · 0 评论 -
android : java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion
android :java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion解决方案:可以通过将此添加到AndroidManifest.xml内部标签:原创 2020-08-04 15:34:14 · 277 阅读 · 0 评论 -
Android 升级 min sdk 到29 后报错Dex file with version 38 cannot be used with min sdk level 29.
Dex file with version 38 cannot be used with min sdk level 29.查看了一些博客上把min sdk 改小就行,但是这不能解决根本问题解决方案:第一步:升级Android studio 到4.0第二步:修改gradle版本dependencies { classpath 'com.android.tools.build:gradle:3.4.1' }同样gradle里...原创 2020-08-04 10:21:42 · 6487 阅读 · 0 评论 -
线程池
在jdk1.5以前还没有线程池。为什么要用线程池?举个例子:一个包工头,接了一个装修项目,需要做泥瓦匠的活,招了一个工人(起了一个线程),需要走水电,招了一个工人(起了一个线程),需要干木工的活,招了一个工人(起了一个线程),泥瓦匠的活干完了,然后就把这个工人辞了,水电干完了,就把干水电的工人也辞了…。包工头过几天又接了一个项目,然后有重新招各种人。最后包工头发现太费时间了。然后就成立了一个公司(建立一个线程池)招了一批员工(创建一些线程放在线程池中),来项目员工不用招直接开干,后面接项目排期就是。就这样原创 2020-06-03 15:14:40 · 137 阅读 · 0 评论 -
Android面试大全(未完待续)
Java虚拟机方面JVM 内存结构JVM垃圾收集策略与算法Java方面Android方面布局渲染流程原理及优化原创 2020-05-23 15:27:32 · 147 阅读 · 0 评论 -
Android 10 Unable to open '/storage/emulated/0/: Permission denied
Android 10 Unable to open '/storage/emulated/0/: Permission denied在Android10 中读取sd卡数据时候报这样的错,起初一脸懵逼,权限也加了为什么还报没有权限。这里是Android的新机制,每个应用只能访问如下路径:/storage/emulated/0/Android/data/<包名>/files自己sd存储包名下的文件,不能访问其他路径下的。把访问数据都放在这个路径下就不会报错了。详情可以搜索:Android原创 2020-05-13 18:35:48 · 11870 阅读 · 8 评论 -
Android开发杂记
build.gradle设置属性值在AndroidManifest.xml中展示productFlavors { demo { dimension "default" manifestPlaceholders = [APIKEY: "*****", SECRET: "****", CHANNEL:"-3"] } ...原创 2020-05-06 17:32:58 · 125 阅读 · 0 评论 -
Android targetSdkVersion="28" 修改为28后遇见的问题
一、net::ERR_CLEARTEXT_NOT_PERMITTED Android9.0无法加载url解决方案:android:usesCleartextTraffic=“true”<application android:usesCleartextTraffic="true"二、解决 http Android java.lang.RuntimeEx...原创 2020-02-26 18:13:07 · 1669 阅读 · 0 评论 -
设置Dialog位置
@设置Dialog位置public static void setDialogPosition(AlertDialog dialog,Activity activity){ Window window = dialog.getWindow(); window.getDecorView().setPadding(0, 0, 0, 0); window.setLayou...原创 2019-12-26 11:17:43 · 950 阅读 · 0 评论 -
Android 状态栏背景颜色修改与状态栏字体颜色修改
public class StatusBarUtils { /** * 修改状态栏为沉浸式,并修改背景颜色与字体颜色 * * @param activity */ @TargetApi(19) public static void transparencyBar(Activity activity,int color) { ...原创 2019-10-22 14:29:37 · 3507 阅读 · 0 评论 -
Android之NDK开发
一、NDK产生的背景 Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”。在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C转载 2015-03-25 16:30:55 · 342 阅读 · 0 评论 -
java基础中 关于“异常”的理解
--------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------/*异常 * 听完这一课我了解了 有些功能会有些小缺陷 但是还能很有用,这时可以给这个功能 * 声明异常“throws Exception” * 然后别的程序调用得时候有两种情况:1,直接抛出“throws Execption原创 2014-03-17 15:51:28 · 564 阅读 · 1 评论 -
JDK 1.5 新特性
--------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------JDK 1.5 新特性一、 StringBuilder相对于StringBuffer(线程同步)是线程不同步的,单线程中效率提高了 。二、 简化了很多代码例子如下:Integer x = new Intege原创 2014-03-23 17:58:14 · 408 阅读 · 0 评论 -
instanceof、==、equals 区分和用法 还有return
--------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。==其实是比较两个对象的内存地址,而equals方法是比原创 2014-03-25 11:35:00 · 815 阅读 · 0 评论 -
迭代器总结
--------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------迭代器方法中只有三个 ,且不能执行集合中的很多功能。这种情况下 列表迭代器就解决了这个问题。 List 集合特有的迭代器。ListIterator 是Tterrator的子接口。在迭代时,不可以通过集合对象的方法操作集原创 2014-03-24 19:55:29 · 471 阅读 · 0 评论 -
Andriod 从源码的角度详解View,ViewGroup的Touch事件的分发机制
转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/21696315),请尊重他人的辛勤劳动成果,谢谢!今天这篇文章主要分析的是Android的事件分发机制,采用例子加源码的方式让大家深刻的理解Android事件分发的具体情况,虽然网上很多Android的事件分发的文章,有些还写的不错,但是我还是决定转载 2015-03-24 14:06:51 · 362 阅读 · 0 评论 -
android 如何使用hierarchy viewer
Hierarchy Viewer是随AndroidSDK发布的工具,位置在tools文件夹下,名为hierarchyviewer.bat。它是Android自带的非常有用而且使用简单的工具,可以帮助我们更好地检视和设计用户界面(UI).1. 基本使用方法(1)hierarchyviewer的使用非常简单,启动模拟器或者连接上真机后,启动hierarchyviewer.bat,D原创 2015-03-24 15:35:54 · 415 阅读 · 0 评论 -
finally 异常解决以前我觉得finally 没什么用处,听完这课才明白finally得重要性
--------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------finally 异常解决里面以前我觉得finally 没什么用处,听完这课才明白finally得重要性。如果数据库访问异常,没有finally执行关闭动作得话,这个访问数据库的资源一直没有关闭,将一直占用这个资源,有可原创 2014-03-18 19:45:58 · 2902 阅读 · 1 评论 -
设计模式Builder模式
简单的建造者如下代码:public class myAlertDialog { private String titler; private String message; private int digicon; public myAlertDialog(Builder bulider) { titler = bulide原创 2016-01-07 11:46:26 · 343 阅读 · 0 评论 -
设计模式-工厂方法模式
设计模式-工厂方法模式算是看书的笔记并非原创,总结:工厂方法模式定义Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses 定义一个用于原创 2016-05-10 11:50:27 · 753 阅读 · 0 评论 -
Android 开发过程中遇见的奇葩的bug
一、大图片OOM 当初是在黄页详情页使用imageload加载一个大图片。很OK的,压力测试的时候,会出现这样情况,不停快速打开关闭详情页,根据手机性能而定大约10_20次就出现了OOM(经分析,之前关闭的页面还没有来的机被CG回收。解决方案:当详情页关闭的时候收到回收)//手动释放内存 多次点击详情也关闭会报OOM private void releaseImageView(原创 2016-01-07 12:01:33 · 1493 阅读 · 0 评论 -
常用的正则表达式大全
常用正则表达式大全!(例如:匹配中文、匹配html)匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:ns*r 评注:可以转载 2016-05-30 11:39:00 · 207 阅读 · 0 评论 -
设计模式—观察者模式
观察者模式定义(Observer Pattern)观察者模式(Observer Pattern)也叫发布订阅模式(Publish/subscribe),它是一个在项目中经常使用的模式,其定义如下: Define a one-to-many dependency between objects so that when one object changes state,all its dep原创 2016-05-18 17:22:34 · 315 阅读 · 0 评论 -
Android最佳性能实践(四)——布局优化技巧
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/43376527在前面几篇文章当中,我们学习了如何通过合理管理内存,以及高性能编码技巧的方式来提升应用程序的性能。然而实际上界面布局也会对应用程序的性能产生比较大的影响,如果布局写得糟糕的话,那么程序加载UI的速度就会非常慢,从而造成不好的用户体验。那么本篇文章我们就来学习一下,如转载 2016-06-01 18:25:07 · 408 阅读 · 0 评论 -
Android应用程序Handler机制详解
之前听朋友讲过handler,之后自己看了下handler的源码(Read The Fucking Source Code。)决定写下关于handler的博客。Android应用程序是消息驱动的,并且是全局的消息驱动循环系统,Android通过Looper,handler来实现消息循环机制。Message:消息对象,MessageQueue中存放的对象,一个MessageQueue中包含多个Mess原创 2016-05-27 18:13:40 · 352 阅读 · 0 评论 -
java快速排序Quick sort
原理,通过一趟扫描将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对两部分数据进行快速排序,整个排序过程可以递归进行,以此达到整个数据标称有序序列public static void main(String[] args) { // TODO Auto-generated method stub int[] int原创 2016-07-04 17:22:03 · 658 阅读 · 0 评论