
android
文章平均质量分 53
踏雪羽翼
当你迷茫的时候,不要放弃学习,只有付出越多才能得到越多。
展开
-
Android Handler的机制跟源码分析
不断循环执行 Looper.loop() ,从 MessageQueue 中读取 Message ,按分发机制将消息分发出去给目标处理(将 Message 发到 Handler.dispatchMessage 方法去处理)。上面讲到了新建Message推荐使用 obtain() ,因为可以有效的复用消息,其中里面复用的就是 sPool 变量,它是在Message回收的时候进行赋值的。在应用启动时,会执行 main() 方法, main() 会创建一个 Looper 对象,然后开启一个死循环,目的是不断从。原创 2025-02-11 21:20:42 · 774 阅读 · 0 评论 -
android 解决sdk代码冲突
1. 在引用sdk的外面添加排除sdk。2. 全局指定对应的sdk版本。原创 2023-08-23 09:31:17 · 913 阅读 · 0 评论 -
android 点击父类,子控件会有点击效果(Seekbar)
【代码】android 点击父类,子控件会有点击效果(Seekbar)原创 2023-02-27 14:22:47 · 468 阅读 · 0 评论 -
android 实现自定Seekbar
可实现左边跟中间滑动显示Seekbarpackage com.android.myapplication;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;原创 2022-04-25 22:47:42 · 2736 阅读 · 0 评论 -
android 解决android studio编译慢问题
1、我们编译代码的时候经常会出现build超级慢,有时候可能得等十几二十分钟,因为我们用了谷歌的加载导致会很慢(maven { url "https://maven.google.com/"}),这句一定不能加,可以加阿里云的,这样我们编译速度会快非常多倍,下面是配置文件,对着加进去就可以了。buildscript { repositories { maven { url 'http://maven.aliyun.com/nexus/content/groups/pub.原创 2020-12-28 10:31:32 · 1305 阅读 · 0 评论 -
android Activity转场动画makeSceneTransitionAnimation
1、activity转场动画实现有很多,这里主要记录ActivityOptions实现转场动画。1、makeSceneTransitionAnimation实现,网上很多说要添加下面这句代码<item name="android:windowContentTransitions">true</item>或者Activity中添加requestWindowFeature(Window.FEATURE_CONTENT_TRANSITIONS);,但是实际不添加也可以2、原创 2020-08-10 22:29:25 · 2582 阅读 · 0 评论 -
Android recyclerView实现二级横向显示
1、效果图2、主要实现比较简单,首先data数据类package com.example.mytestproject.recycle;import java.io.Serializable;import java.util.List;public class RecyclerItem implements Serializable { private int icon; private String name; private List<Integer&原创 2020-07-15 23:05:14 · 2528 阅读 · 0 评论 -
Android 实现涂鸦笔效果
1、主要可以通过手指绘制各种图案、还可以清除回撤等效果,实现比较简单。2、主要实现代码,功能实现比较简单。package com.example.mytestproject;import android.content.Context;import android.graphics.BlurMaskFilter;import android.graphics.Canvas;import android.graphics.Color;import android.graphi.原创 2020-07-08 22:28:53 · 1908 阅读 · 2 评论 -
android fragment详解
1、fragment的简单介绍。首先fragment的优点:fragment可以为不同屏幕大小的设备创建动态灵活的UI(小屏幕手机到大屏幕平板电脑),极大提高了UI的灵活性。每个frgment都是独立的,可以被多个activity公用,可以在一个正在显示的activity中执行添加、替换、删除的操作。2、fragment的生命周期原创 2017-05-22 23:03:19 · 482 阅读 · 0 评论 -
android 获取手机包名显示
功能:主要是获取手机所有应用的包名并显示。实现代码:1、FindApk.javapackage wind.com.findapk;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.pm.PackageInfo原创 2016-05-12 15:47:27 · 1463 阅读 · 1 评论 -
实现TextView内容分块处理
实现效果图:这里实现主要是用HorizontalScrollView加TextView实现的,实现布局代码:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id=原创 2017-05-08 19:38:32 · 786 阅读 · 0 评论 -
android 设置自定义dialog全屏显示
一般通过代码是无法将自定义dialog设置为全屏的,这里是在styles.xml中设置然后引用styles.xml代码: true true 然后代码中引用 private void showCreateNewFolder(){ Dialog dialog1 = new Dialog(this,R.style.Dialo原创 2017-05-17 19:14:21 · 970 阅读 · 0 评论 -
android 实现圆形进度条
要实现圆形进度条只能使用自定义view了,实现代码比较简单,自定义view代码package com.example.apple.memory;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint原创 2017-05-27 23:09:22 · 1608 阅读 · 0 评论 -
Android Fragment实例
1、使用Fragment必须继承FragmentActivity。还要获取FragmentTransaction 实例FragmentTransaction ft = getSupportFragmentManager().beginTransaction();//WeiFragment second = new WeiFragment();ft.replace(R.id.id_c原创 2016-06-12 17:45:13 · 646 阅读 · 0 评论 -
android 分析ANR问题
1.2 如何分析ANR问题引起ANR问题的根本原因,总的来说可以归纳为两类:应用进程自身引起的,例如:主线程阻塞、挂起、死循环应用进程的其他线程的CPU占用率高,使得主线程无法抢占到CPU时间片其他进程间接引起的,例如:当前应用进程进行进程间通信请求其他进程,其他进程的操作长时间没有反馈其他进程的CPU占用率高,使得当前应用进程无法抢占到CPU时间片分析ANR问题时转载 2017-05-19 19:43:19 · 1025 阅读 · 0 评论 -
Java 错误解决之java.lang.IllegalArgumentException: Comparison method violates its general contract
在jdk1.7上使用分类排序会报下面错误java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.TimSort.mergeLo(TimSort.java:743) at java.util.TimSort.mergeAt(TimSort.j原创 2017-06-21 19:16:28 · 17009 阅读 · 2 评论 -
android 右边滑动字母索引使用
1、实现效果2、实现主要时一个listView或者recyclerView跟一个自定义右边a-z的显示自定义view实现,首先自定义view实现首先绘制右边栏a-#,通过获取屏幕的高度然后计算每个字母的高度进行绘制 @Override protected void onDraw(Canvas canvas) { int perTextHeight = get转载 2017-06-16 23:21:07 · 4728 阅读 · 1 评论 -
android app冷启动优化
一、应用启动方式1、冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。2、热启动:应用启动过后,后台还保留了应用的进程,这种启动应用方式叫热启动。二、应用启动流程在安卓系统上,应用在没有进程的情况下,应用的启动都是这样一个流程:当点击app的启动图标时,安卓系统会从Zygote进程中fork创建出一个新的进程分配给该应用原创 2017-04-18 23:44:42 · 390 阅读 · 0 评论 -
支付宝开发
1、将支付宝集成到手机app上需要注册一个企业账号。2、下载官方的最新demo:https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&docType=1,不是最新版可能会出现很多问题,不同版需要配置的参数也不一定一样。3、配置demo的密钥:https://doc.open.al原创 2017-02-27 22:49:48 · 566 阅读 · 0 评论 -
Android onTouch事件传递机制
1、在ViewGroup中触发onTouchEvent事件会调用三个方法,FrameLayout和RelativeLayoutpublic boolean dispatchTouchEvent(MotionEvent ev) 用于事件的分发public boolean onInterceptTouchEvent(MotionEvent ev) 用于事件的拦截public原创 2017-02-28 16:59:50 · 489 阅读 · 0 评论 -
android视频播放器(vitamio)
1、我们有三种方式来实现视频的播放1、使用其自带的播放器。指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型。2、使用VideoView来播放。在布局文件中使用VideoView结合MediaController来实现对其控制。3、使用MediaPlayer类和SurfaceView来实现,这种方式很灵活。这里主要使用了vitamio万原创 2017-03-06 22:50:17 · 1184 阅读 · 0 评论 -
android 自定义控件
一般写自定义控件是为了增加控件的属性或者做一些复杂的控件避免每次都写一些麻烦的布局,自定义view也不一定很复杂,可以很简单的实现。1、view其实可以分自绘控件、组合控件、以及继承控件这三种2、先简单介绍一下view绘制的三个方法1、measure操作 measure操作主要用于计算视图的大小,即视图的宽度和长度。在view中定义为final类型,要求子类不能修改。m原创 2017-03-18 19:11:28 · 340 阅读 · 0 评论 -
android 使用download Manager实现应用下载安装
android 2.3中引入了download manager ,作为一个service来优化长时间下载操作处理。download manager通过处理http 连接、监听连续的变化和系统重新启动来确保每一次下载都能成功完成。最好大多数场景下都使用download manager,特别是在一个下载可能会在多个用户回话之间在后台继续进行的地方或者在某个下载的完成非常重要的时候。1、用到的权原创 2017-04-12 23:16:13 · 1948 阅读 · 0 评论 -
android 广播使用(Broadcast)
在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver是对发送出来的 Broadcast进行过滤接受并响应的一类组件。首先在需要发送信息的地方,把要发送的信息和用于过滤的信息(如Action、Category)装入一个Intent对象,然后通过调用 sendOrderBroadcast()或sendStickyBroad原创 2015-01-31 18:23:42 · 684 阅读 · 0 评论 -
menu的使用
在手机,当Menu按下的时候,每个Activity都可以选择处理这一请求,在屏幕底部弹出一个菜单,这个菜单我们就叫他选项菜单OptionsMenu,一般情况下,选项菜单最多显示2排每排3个菜单项,这些菜单项有文字有图标,也被称作Icon Menus,如果多于6项,从第六项开始会被隐藏,在第六项会出现一个More里,点击More才出现第六项以及以后的菜单项,这些菜单项也被称作Expanded Men原创 2015-08-21 14:49:56 · 609 阅读 · 0 评论 -
android aidl进程间的通信
1、IPC是Inter-Process Communication的缩写,含义就是进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。进程在PC和移动设备上指的是一个程序或者一个应用。一个进程可以包含多个线程,因此进程和线程是包含被包含的关系。2、aidl在应用间的使用首先可以先实现 .aidl文件,.aidl文件可以直接新建,跟java同级// IMyAidlInt原创 2017-04-17 21:55:05 · 352 阅读 · 0 评论 -
android okGo、okHttp、XUtils网络框架使用
一、XUtils网络框架使用1、先导入xutils的library库,然后在build.gradle中添加下面代码 //xutils compile project(':xutils')2、需要先在Application中初始化 x.Ext.init(this); x.Ext.setDebug(BuildConfig.DEBUG); // 是否输出debug原创 2017-03-20 23:51:22 · 5593 阅读 · 2 评论 -
android 按时间显示图片
实现效果:首先写需要用到的图片数据:时间、文件名、路径等package com.example.a550211.cd;import java.text.SimpleDateFormat;import java.util.Date;/** * Created by xing on 2017/7/4. */public class ImageTime { privat原创 2017-07-11 19:27:14 · 4891 阅读 · 13 评论 -
android 异步线程的使用
在android 中,当我们操作一个事件在5s、10s、20s(按键或触摸事件特定时间内无响应,广播、service特定时间内无法处理完成)就会报anr,为了避免这种问题,那我们就可以使用后台去处理,处理完后然后更新,异步处理一般使用AsyncTask、IntentService、Handler。1、AsyncTask使用asyncTask类可以将耗时的操作放到后台线程中处理操作完成后同步原创 2017-06-11 21:49:23 · 557 阅读 · 0 评论 -
android实现文件排序
1、仅仅实现文件的排序功能并不难。首先看看实现的效果图2、代码图3、代码编写一个数据文件存储文件的大小、名字路径等等信息package com.example.a550211.mycsdn;/** * Created by 550211 on 2017/4/24. * use to save file data */public class FileInf原创 2017-05-10 20:15:02 · 5230 阅读 · 1 评论 -
android jni使用
1、配置添加ndk,然后配置一下环境变量2、配置build.gradle,在defaultConfig中添加//配置ndk信息ndk{ moduleName "JniTest" abiFilters "armeabi","armeabi-v7a","x86"}//配置so文件存放位置sourceSets.main { jni.srcDirs = [] jniLibs.src...原创 2018-03-31 09:14:59 · 302 阅读 · 0 评论 -
android Aes加密解密和Des加密解密
1、Aes加密,密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。package com.example.nsc.dataencryptproject;import android.util.Log;import jav...原创 2018-04-02 18:57:22 · 701 阅读 · 0 评论 -
android 耳机按钮控制音乐播放
1、一般我们耳机上有按钮可以实现音量加减控制中间还有一个按钮也可以监听到它的点击事件。还有就是可以监听到耳机的插拔事件。2、首先实现耳机插拔事件的监听,注册一个插拔事件的静态action<action android:name="android.media.AUDIO_BECOMING_NOISY" />3、注册一个用于监听耳机点击事件的监听<action a...原创 2018-08-07 23:08:11 · 2038 阅读 · 0 评论 -
android ViewPager+fragment切换动画实现
1、viewPager的fragment切换动画主要实现ViewPager.PageTransformer接口,然后修改下面几个参数实现各种不同的动画切换效果的。setAlpha(@FloatRange(from=0.0, to=1.0) float alpha) 透明度 setTranslationX(float translationX) X轴平移 setTranslationY(fl...原创 2019-01-23 22:24:15 · 1486 阅读 · 0 评论 -
android 状态栏和虚拟按键栏字体背景颜色设置
1、设置顶部状态栏字体颜色为白色红底public static void setStatusBarColor(Activity context, boolean useThemeStatusBarColor) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//5.0及以上 ...原创 2019-06-17 22:08:28 · 1248 阅读 · 0 评论 -
gradle版本下载
gradle版本下载:http://services.gradle.org/distributions/原创 2019-08-20 22:30:06 · 151 阅读 · 0 评论 -
android ContentProvider使用
1、contentProvider可用于进程间的通信,即应用间数据的共享。 2、contentProvider 的数据类型有null、Interger、real(浮点数)、text(字符串)、blob(大数据) 3、contentProvider使用使用首先创建一个数据库,里面可以有多个参数,具体,可自行定义 package com.example.nsc.biglarge;原创 2017-12-19 18:47:00 · 392 阅读 · 0 评论 -
android Messenger跨进程通信
1、android messager可以实现不同进程之间数据的传递。通过点击进去看messenger类可以看到,我们可以创建一个service用于处理和客户端的连接请求,然后通过handler中创建一个messener对象,实现对service数据传递。/** * Create a new Messenger pointing to the given Handler. Any Mes原创 2017-09-26 22:15:07 · 404 阅读 · 0 评论 -
android 反射使用
1、在我们开发过程中可能会遇到某些类中的方法或变量无法使用,例如加了/** {@hide} */注释的,就是一些隐藏的方法。如果我们用反射就可以轻松调用了。2、虽然如此但反射也有缺点:* 因为是动态执行的,效率自然没有预编译时引用现有的库效率高,就像平时我们Win32开发时,可以不用h文件,直接通过GetProcAddress一样去动态获取方法的地址。当然效率要根据复杂程度而决定,一般原创 2017-07-06 22:51:41 · 2369 阅读 · 0 评论 -
android 天气预报
获取城市天气数据的途径有很多,这里主要使用高德实现。1、首先到高德官网:http://lbs.amap.com/dev/key/app 注册一个开发者账号,然后在应用管理-->我的应用那里添加一个应用,关于获取SHAI上面有文档可以查看http://lbs.amap.com/faq/top/hot-questions/249 但是其中要注意的是,如果在as的Terminal那里获取原创 2017-07-26 19:27:25 · 3805 阅读 · 3 评论