android
文章平均质量分 57
WYQ_XQ
量的积累引起质的飞跃!!!
展开
-
Android系列之图片选择的两种方式
Android选择图片的两种方式:第一种:单张选取通过隐式启动activity,跳转到相册选择一张返回结果关键代码如下:发送请求:private static final int PICTURE = 10086; //requestcodeIntent intent = new Intent();if (Build.VERSION.SDK_INT原创 2016-01-16 13:40:46 · 581 阅读 · 0 评论 -
android四大组件
四大组件都运行与主线程activity:显示ui与用户交互;声明周期:oncreate() onstart()onresume() onpause() 1:保存数据持久化操作 唯一一个保证进程被杀死前执行的 onsaveinstanse()保存组件状态 默认会保存有id的组件状态。2:函数内操作越快越好 onpause 执行完成后才会掉用其他activ原创 2016-05-08 11:15:17 · 315 阅读 · 0 评论 -
代码实现 改变statusbar NavigationBar颜色
/** * Created by xq on 16/8/15. */public class StatusAndNavigationBarUtil { public static void setStatusBarColor(Activity activity, int color) { if (Build.VERSION.SDK_INT > Build.VERSIO原创 2016-08-16 22:59:31 · 5466 阅读 · 0 评论 -
优化总结
布局优化:关键点在于减少布局的深度层级,因为加载xml文件是一个递归的过程,布局越深,效率越低。方法:1:使用标签include重用View防止重复创建, 使用merge合并相同布局减少深度层级,使用viewstub占位,延迟加载。 2:尽量减少过度绘制, 将手机打开开发者模式 打开“显示GPU视图更新” 在打开app 红色部分为过度渲染部分,可以根据这个适当更改。原创 2016-08-21 21:56:25 · 302 阅读 · 0 评论 -
Shape的属性介绍及使用
Shape(模型)通常用于自定义各种形状的图形,作为背景等。shape分为 rectangle(矩形) oral(椭圆) Line(线性) ring(环形) 属性:corners(圆角) android:radius="10dp"数值越大越圆 gradient (渐变色)原创 2016-01-24 15:36:24 · 1507 阅读 · 0 评论 -
base64解码urlencode乱码
问题描述:服务器返回一个json格式的base64加密的字符串,要求将字符串解码得到一个json获取字段url,然后根据url获取一个图片问题1:通过Base64.decode(str.getBytes(), Base64.DEFAULT)解析获取到的是乱码结果是这样的:原因:1:base64编码里面有一个 “+” 号,在urlecode编码中 “+” 会被解码原创 2016-11-30 20:38:56 · 15493 阅读 · 0 评论 -
6.0以上动态权限管理
1:检查权限 PermissionChecker.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)2:申请权限 ActivityCompat.requestPermissions(this, new String原创 2016-11-18 21:10:14 · 368 阅读 · 0 评论 -
集成高德地图:com.autonavi.amap.mapcore.nativeNewInstance
错误截图:我是按照官方文档集成不走一步一步做的 再倒入so文件时直接放到libs目录下 然而还是报错紧接着下面还有另外一个错误原因:应该是so文件冲突了,导致本地方法没有找到 。为了验证这个原因我又新建一个工程将高德地图重新集成,结果在新建的空白工程里面是可以使用的 因此可以推断是与友盟冲突了解决:方法一:在main目录下新建jnilibs原创 2016-12-13 22:52:41 · 1457 阅读 · 0 评论 -
android流量统计
public class MainApplication extends Application{ int uid = -1; long begin_rx = 0; long begin_tx = 0; @Override public void onCreate() { super.onCreate(); uid = this.getUid();原创 2016-11-27 21:33:21 · 525 阅读 · 0 评论 -
相机滤镜效果实现
基于github上面gpuimage库和magiccamera库,1:改写了OpenGlUtil工具。2:自定义surfaceview组件,使其可以左右滑动,关键代码:package com.view;import android.content.Context;import android.opengl.GLSurfaceView;import android.util.原创 2016-10-02 13:24:35 · 1592 阅读 · 0 评论 -
activity启动模式你真的了解吗?
activity四种启动模式:首先明确一点activity一定是依附于某个任务栈才能存在的 默认情况下一个应用内的activity都在一个任务栈里 可以通过Android:taskAffinity来修改它的任务栈1:standard 每次启动都重新实例化一个实例2:singletop 栈顶复用模式,如果要开启的activity在任务栈的顶部已经存在,就不会创建新的实例,而是调用原创 2017-02-22 21:40:22 · 344 阅读 · 0 评论 -
unzipping/Users/xq/.gradle/wrapper /dists/gradle-3.3-all/55gk2rcmfc6p2dg9u9ohc3hw9/gradle-3.3-all.zi
问题:gradle使用时遇到如下问题unzipping/Users/xq/.gradle/wrapper /dists/gradle-3.3-all/55gk2rcmfc6p2dg9u9ohc3hw9/gradle-3.3-all.zip to /Users/xq/.gradle/wrapper/dists/gradle-3.3-all/55gk2rcmfc6p2dg9u9ohc3hw9原创 2017-03-20 18:34:32 · 4525 阅读 · 1 评论 -
Android在原生集成react native
环境: Android studio3.0 react native 0.50 Mac 10.12.6 (16G29)react native使用方式有两种: 1:直接新建一个react native项目 2:在已经存在的原生项目中集成react native项目。 今天主要讲解第二种方式的步骤。 1:新建Android原生项目 2:在原生项目的根目录下执行npm init 输入pa原创 2017-12-01 14:44:04 · 3432 阅读 · 2 评论 -
To run dex in process, the Gradle daemon needs a larger heap. It currently has 1024 MB. For faster b
andorid studio 运行正常,通过命令行react-native run-android 报错。 如图: 解决: 1:app下build.gradle修改 defaultConfig { minSdkVersion 19 targetSdkVersion 26 versionCode 1 versionName "原创 2017-11-27 10:57:34 · 1139 阅读 · 0 评论 -
Bitmap的处理优化
android对每个应用的内存是有限制的,如果应用内部有大量图片,可能会导致OOM,因此我们应该熟练使用bitmap加载图片进行优化bitmap是android用于处理图片的工具。1:BitmapFactory四个方法:decodeFile,decodeResources,decodeStream,decodeByteArray支持从文件系统,资源,输入流以及字节数组加载2:压缩图片BitmapF...原创 2016-04-22 18:23:01 · 770 阅读 · 0 评论 -
进程通讯的几种方式
android中每个应用都是一个独立进程,系统为它们分配独立的虚拟机,application以及内存空间。不同进程间不能共享内存,每个进程都要至少有一个线程。IPC:Inter-Process Communication进程间的通讯,进程间数据交换的过程。开启进程的方式:在配置文件manifest里面指定四大组件(activity,service,broadcast,content p原创 2016-04-17 11:14:06 · 761 阅读 · 0 评论 -
andorid系列之RecyclerView简单使用
RecyclerView相比于listview耦合性低,更加灵活。使用方法:1:首先引入配置文件 <android.support.v7.widget.RecyclerView android:id="@+id/recyclerview" android:layout_width="match_parent" android:layo原创 2016-01-16 15:42:28 · 408 阅读 · 0 评论 -
android系列之popwindow简单应用
popwindow 使用注意事项:1:popwindow是依赖于某个view显示的 view在oncreate的时候并没有创建 所以不能再activity的回调函数里面创建,必须异步创建2:popwindow的setTouchable(true) 指popwindow显示时将优先处理touch事件3:popwindow的setbackgrounddrawable() 影响点击事件4原创 2015-12-20 14:10:13 · 665 阅读 · 0 评论 -
Android系列之得到各种bar
private void setFullscreen(){ int flag = WindowManager.LayoutParams.FLAG_FULLSCREEN; getWindow().setFlags(flag, flag); } private int getTitleBarHeight(){ int co原创 2015-12-20 14:56:34 · 606 阅读 · 0 评论 -
android自定义Toast
Toast是Android中的一个常用组件,用法很简单,主要用于提示信息的显示且 不能获得焦点。 不能改变他的事件但是我们可以改变他的样式。首先我们来看一下平时是怎么使用toast的: Toast.makeText(this,"sehngmsadf",Toast.LENGTH_LONG).show();那么为什么这样就可以显示一个toast呢?让我们看一下andorid的源码是如何实原创 2016-01-23 17:37:38 · 327 阅读 · 0 评论 -
CoordinatorLayout的简单使用
自定义权限:Android权限可以自定义 android:name="权限名字" android:protectionLevel="signature" />//权限级别coordinator(协调者 协调器)自定义behavior设置toolbar跟随滑动隐藏:1:顶层布局coordinator2:要隐藏的组原创 2016-01-10 15:43:01 · 548 阅读 · 0 评论 -
Android:requestFeature() must be called before adding content
今天在使用中dialog的时候遇到requestFeature() must be called before adding content错误,错误代码: public void getView(final AlertDialog alertDialog){ LinearLayout linear = (LinearLayout) LayoutInflater.f原创 2016-02-20 14:52:55 · 799 阅读 · 0 评论 -
Android:根据文件大小自动转化为KB, MB, GB
Formatter.formatFileSize(this, Long.valueOf(target_size));//工具类 根据文件大小自动转化为KB, MB, GB private String formatSize(String target_size) { return Formatter.formatFileSize(activity, Long.valu原创 2016-02-20 15:41:30 · 7509 阅读 · 3 评论 -
Android:Asynctask简单使用
总结如下:1:自定义Myasynctask 继承AsyncTask 2:三个参数类型对应三个函数doInBackground,onProgressUpdate,onPostExecute3:只有doInBackground函数在线程池中执行 其他函数都在UI线程中 因此其他函数可以更新UI4:cancel(true);方法取消当前任务,不保证一定成功,但可以保证onPostEx原创 2015-12-27 16:01:29 · 529 阅读 · 0 评论 -
intent组件间的桥梁
intent:翻译为意图,是android组件间或者应用间跳转传递数据的一种方式。分为显式启动,隐式启动两种方式。 intent的六种属性:component name 组件名 指定启动组件的名字,一般用于一个应用内部的显示启动 category 种类 没有指定则为默认defaultaction 动作 指定将要启动的应用将要做什么 例如打电话 一般用于进程间通讯,隐原创 2016-03-19 18:32:00 · 371 阅读 · 0 评论 -
消息机制
threadlocal:线程内部的数据存储类,只有在指定线程可以使用,对其他线程来说无法使用,可以在不同线程中维护一个数据的副本。使用场景:1:当某些数据是以线程为作用域的并且不同线程有不同数据的副本 2:复杂逻辑下的数据传递,比如一个线程中函数栈比较深looper:一个死循环不断从消息队列中取出消息 发送给handler处理构造函数:原创 2016-04-15 12:21:12 · 324 阅读 · 0 评论 -
线程通讯的几种方式
线程:操作系统执行的最小调度单位。android中可以将线程分为两类:一类主线程 一类工作线程主线程只做两件事情:更新ui,与用户交互工作线程:执行耗时操作 网络请求 数据查询等等一切android开启线程的方式:1:thread + handler 自己实行一个looper的方式2:handlethread 一个自己带有looper的线程3:intentser原创 2016-04-16 17:45:00 · 1887 阅读 · 0 评论 -
了解window
Window是一个窗口的概念,android中所有的视图都是通过window显示的,不管是activity,dialog,toast它们都是附加在window上的。activity->window->根viewwindow是通过windowmanager管理的,window只是一个概念 具体的呈现是一个view。windowmanager->viewmanager: addVi原创 2016-04-18 13:26:10 · 349 阅读 · 0 评论 -
系统信息与安全
android系统信息:1:android.os.build与 SystemPropertyString board = Build.BOARDString os_name = SystemProperty.getProperty("os.name");2:apk应用信息获取packageManager 注重获取包信息3:apk应用信息获取activityManager 注重获原创 2016-05-14 17:46:03 · 335 阅读 · 0 评论 -
react native modal android实现全屏
react native 原生modal默认不能覆盖Android的statusbar.这对于一个强迫症患者来说真是难受。一开始尝试将statabar透明但还是不能绘制到statusbar。最后无奈之下只好参考react native的modal去自己写一个啦。 参考modal目录:node_modules/react-native/ReactAndroid/src/main/java/com/...原创 2018-02-13 19:03:33 · 6524 阅读 · 0 评论