Android基础
文章平均质量分 68
迷途可达鸭
这个作者很懒,什么都没留下…
展开
-
Android折叠屏适配
随着三星 Galaxy Fold 和 华为 Mate X 的发布,折叠屏手机开始进入大家的视线。在改变手机体验的同时,也给我们开发人员在适配方面带来了更多的挑战。本文给大家介绍一下 Android 开发中和折叠屏相关的一些概念,以及如何进行折叠屏的适配。折叠屏适配折叠屏之所以需要适配,是因为我们的应用有可能在运行的过程中,所在的屏幕尺寸发生了变化,这种情况对现有项目多少都会产生一些问题。所以折叠屏适配的本质是:当应用运行时,屏幕的尺寸、密度或比例发生了变化,应用能够继续在变化后的屏幕上正常显示和正常运原创 2020-07-10 16:19:25 · 1420 阅读 · 0 评论 -
OKHttp封装(不说明直接复制粘贴拿来用)
添加依赖: compile 'com.squareup.okhttp3:okhttp:3.6.0' compile 'com.google.code.gson:gson:2.2.4'添加权限: 声明Application: <application android:name=".MyApplication" and原创 2018-01-20 14:35:24 · 427 阅读 · 1 评论 -
获取全局Context
第一步,Application类:public class MyApplication extends Application { private static Context context; @Override public void onCreate() { super.onCreate(); context = getAppl原创 2018-01-20 14:26:53 · 254 阅读 · 0 评论 -
《Android开发艺术探索》 学习笔记---线程池(3)---HandlerThread
由于书中篇幅有限,所以是书中的一些加上网上的文章构成。先看一下HandlerThread特点:1,HandlerThread本质上是一个线程类,它继承了Thread。2,HandlerThread有自己的内部Looper对象,可以进行looper循环。3,通过获取HnadlerThread的Looper对象传递给Handler对象,可以在handleMessage方法中执行异步任务。4,创建Han原创 2018-01-19 15:11:54 · 315 阅读 · 0 评论 -
Android 关于上架更新(2)--- 签名
写在前面:前几天看到电脑里面有之前同事写的一个名为“apk签名发布过程”的word文件,哈哈哈哈很有意思还是Eclipse的。。。所以想起还没有把apk签名总结起来,所以今天就把这个写了把,正好图片就用那个word里面的,反正也差不多,我真机智哈哈哈哈哈、OK,开始:第一步:调出签名的主功能上面是Eclipse的 下面是AS的。。。。突然觉得都弄的话好累,就按照AS原创 2018-01-10 20:35:26 · 628 阅读 · 0 评论 -
jar文件和aar文件的区别
两者区别:jar:只包含class文件与清单文件,不包含资源文件,如图片等所有res中的文件。aar:包含所有资源,class以及res资源文件全部包含。如果你是一个简单的类库那么使用生成的jar文件即可;如果你是一个UI库,包含一些自己写的控件布局文件以及字体的资源文件那么就只能使用aar文件。使用方式:jar:拷贝到libs目录,AndroidStudio 中添加原创 2018-01-10 14:04:12 · 460 阅读 · 0 评论 -
面试题:ListView每个Item倒计时实现
那个。。。这个是之前面试的时候被问到的问题,那时给一个半小时要求实现这个功能,结果干坐一个小时没实现- -。 灰头土脸的走了。。。现在重新把这个实现了,然后贴出来吧。 只有代码,具体的思路不难,看一下就能看出来了。先从最简单的布局来吧MainAcrivity布局:<LinearLayout xmlns:android="http://schemas.android.com/apk/re原创 2018-01-18 17:34:12 · 988 阅读 · 1 评论 -
Android 自定义View构造方法初始化
现在发现又两种方式:第一种:每个构造函数分别调用基类的构造函数,再调用一个公共的初始化方法做额外初始化。public class MyView extends ListView { public MyView(Context context) { super(context); sharedConstructor(); } public MyView(Con原创 2018-01-26 15:22:46 · 4840 阅读 · 0 评论 -
Android 自定义View的构造函数的调用时机
自定义View 初始化的时候有三个构造方法:public class MyCustomView extends View { /** * 第一个构造函数 */ public MyCustomView(Context context) { this(context, null); } /** * 第二个构造函数原创 2018-01-24 14:41:13 · 2037 阅读 · 0 评论 -
《Android开发艺术探索》 学习笔记---线程池(2)---AsyncTask
从实现上来说 AsyncTask 封装了Thread 和 Handler 通过 AsyncTask 可以更加方便地执行后台任务以及在主线程中访问UI但是AsyncTask 并不适合进行特别耗时的后台任务,对于特别耗时的任务来说 建议使用线程池AsyncTask基本使用:public class MyTask extends AsyncTask { private int coun原创 2018-01-18 11:32:09 · 243 阅读 · 0 评论 -
Android View设置Margin
准备工作: 布局:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"原创 2018-01-09 10:35:50 · 2083 阅读 · 3 评论 -
Android 线程池(2)
转载自:http://blog.csdn.net/seu_calvin/article/details/52415337使用线程池可以给我们带来很多好处,首先通过线程池中线程的重用,减少创建和销毁线程的性能开销。其次,能控制线程池中的并发数,否则会因为大量的线程争夺CPU资源造成阻塞。最后,线程池能够对线程进行管理,比如使用ScheduledThreadPool来设置延迟N秒后执行任务原创 2018-01-08 18:02:53 · 203 阅读 · 0 评论 -
Android 线程池(1)
线程池算是Android 开发比较常用的了,涉及线程的地方大多数都会涉及线程池。举个栗子:假如我一个ListView,每个Item的图片需要从网上加载,如果我不使用线程池,则这样开启新线程:new Thread(new Runnable() { @Override public void run() {原创 2018-01-08 17:50:28 · 285 阅读 · 0 评论 -
OkHttp3实现Cookies持续化管理
参考文章:https://www.zhihu.com/question/19786827http://www.open-open.com/lib/view/open1453422314105.htmlhttps://www.jianshu.com/p/41b4cbe1dbecCOOKIE和SESSION 是什么???1,由于HTTP协议是无状态的协议,所以服务端需要记录原创 2018-01-20 14:57:23 · 966 阅读 · 1 评论 -
读取assets目录下的文件(.bin 文件 .txt文件)
第一步:新建assets 目录左边工作区间换成Project 在main目录下新建assets文件夹:名字不能错。 新建完成之后如图:然后把 .bin 或者 .txt 类似的文件 放进去,结果如图:第二步:新建工具类lcndUtilpublic class LcndUtil { public static String g原创 2018-01-29 19:52:25 · 3767 阅读 · 0 评论 -
Android 重启Acticity以及重启后的生命周期变化
先直接贴出chon重启的代码:Intent intentReStrat = getIntent();finish();startActivity(intentReStrat);代码就这么简单实际上就这三行,可是当我们实际用的时候会发现有一些不对劲,比如果我在onDestory等生命周期做了什么的时候,所以我们在每个生命周期打上Log看一下LogUtil.chunyLog().d...原创 2018-11-01 17:25:24 · 725 阅读 · 0 评论 -
Android 中IDE ADT SDK NDK名词的解释22
名词解释:1,IDE:Intelligent Development Environm的简称。即智能开发环境。是一种开发工具。常用的IDE有adt-bundles和Android studio。两个都需要配置jdk。2,ADT:Android Development tools的简称。即Android开发工具。ADT为Eclipse的插件。在Eclipse和SDK之间起了一个桥梁的作用。3,SDK...原创 2018-04-24 20:20:13 · 298 阅读 · 0 评论 -
Android 几种拼接数组合并数组的方法
实际项目中需要使用数组拼接合并,还有需要截取。下面是网上搜集整理的四个方法:一,apache-commons二,Arrays.copyOf三,Array.newInstance四,System.arraycopy一,apache-commons好像是jdk中提供的方法。我这里打不出来。。。 估计是少下点东西,懒得弄了。。。直接其他三个方法把。二,ArrayscopyOf() public sta...原创 2018-04-02 20:29:20 · 11753 阅读 · 0 评论 -
使用ZXing扫码实现扫手机本地图片的二维码内容
ZXing这个第三方是我用的第三方,用来扫描二维码的,之前没有看到ZXing还提供了扫描本地图片二维码的功能,现在整理如下。跳转到选取本地图片的页面Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("iamge/*"); startActivityForResult(inten...原创 2018-03-26 16:27:49 · 6244 阅读 · 3 评论 -
根据URI获取文件路径
这是个工具类直接使用就可以了我这个是用在ZXing扫码时要读取本地图片的二维码内容时用到的。public class getPathUtil { //简易处理板 (实际本没有发现什么问题,可以直接使用) public static String getRealPathFromURI(Context context, Uri contentURI) { Strin...原创 2018-03-26 15:18:23 · 6027 阅读 · 0 评论 -
开启相机,读取本地相册实现
本文主要实现如何打开相机把照的图片展示,还有就是读取本地相册,把选取中的图片返回。第一步: 权限声明,一个是相机权限一个是读取权限 <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.READ_EX...原创 2018-03-26 11:18:02 · 2712 阅读 · 7 评论 -
Android 获取App可用内存
以下就是获取App 内存的代码:int M = 1024*1024; Runtime r = Runtime.getRuntime(); LogUtil.fussenLog().d("最大可用内存:" + r.maxMemory() / M + "M"); LogUtil.fussenLog().d("当前可用内存:" + r.totalMemor...原创 2018-03-06 14:08:01 · 7367 阅读 · 0 评论 -
Android 滑动Fragment切换页面并且下面有指示的小点
懒得开头说啥了,直接开始贴代码,全粘贴上用就行了,这是个基础框架,如果实际上要改的话在这基础上改就好了,比如这个小点只有滑动第一次之后才会出现(懒得弄刚开始就有了)。MainActivity的布局: Button 是为了动态添加新的Fragment下面的LinearLayout 是存放小点的<?xml version="1.0" encoding="utf-8"?><Rela...原创 2018-03-22 16:42:01 · 1526 阅读 · 1 评论 -
Aandroid Srudio 构建文件build.gradle配置
Project目录下app下的build.gradle文件apply plugin: 'com.android.application'android { compileSdkVersion 24 buildToulsVersion "25.0.2" /** * 一、默认产品偏好配置 */ defaultConfig { .....原创 2018-02-23 12:10:57 · 652 阅读 · 0 评论 -
Android 按照二进制格式读取.bin文件
项目里需要按照二进制读取一个30M左右的.bin文件,并且赋值到char[]里面。之前写过一篇文章 读取assets目录下的文件(.bin文件.txt文件) 当实际使用的时候会发现很多问题,例如:1,读取的速度太慢(因为之前是按行读的,30M的文件按行读。。。我等了十分钟还没好,估计要很久很久)2,读取的方式不正确,导致最终读出来的文件大小不正确。(因为之前那个连接里面的.bin文件是.txt文...原创 2018-03-09 14:46:02 · 14254 阅读 · 4 评论 -
Android Studio 项目工程目录
新建项目 点击左边切换成Project工作区间 如图:接下来就根据网上查来的总结出的把每个文件大概作用解释一下: 1 .gradle Gradle编译系统,版本由wrapper决定 .idea AndroidStudio IDE所需要的文件 这两个目录下防止的都是Android Studio 自动生成的一些文件,我原创 2018-02-06 15:27:37 · 10328 阅读 · 1 评论 -
手把手教你 ----JNI的基础实现
距离上一篇博客已经过去20天了.......不知是事情太多,还是太懒了,学习到了很多,总感觉没时间写成博客,却有时间发呆,看新闻.............唉废话不多说,开始总结!!!1什么是JNIJNI是Java Native Interface的缩写 , 后面具体的解释也懒得贴上来 , 我理解的就是Java调用c或者c++代码 。2准备工作在用原创 2017-06-28 09:55:12 · 1332 阅读 · 0 评论 -
《Android开发艺术探索》 读书笔记---线程池(1)
除了Thread本身以外,能扮演线程角色的还有比如说:AsyncTask、IntentService、HandlerThread 它们的本质都是线程。AsyncTask底层应用到了线程池,IntentService和HandlerThread 它们底层则直接使用了线程。虽然都是线程,但是它们仍具有不同特性和使用场景。AsyncTask:封装了线程池和Handler,它主要是为原创 2018-01-17 13:43:47 · 301 阅读 · 0 评论 -
android studio修改包名
修改包名需要三步:第一步 manifests修改包名:在package里面更改你想要的包名。第二步 在Android工作区间下 把包名分层然后修改:点击Compact Empty Middle Packages 把左边的包名分级变成图片的格式,然后把报名调成和第一步中的一样就行了 修改包名shift + F6 第三步 b原创 2018-01-24 16:38:38 · 387 阅读 · 0 评论 -
Android 悬浮球的实现(如何判断是否点击在某View上)(如何自由拖动View)
要实现最简单的悬浮小球需要解决两个小问题:1:需要判断是否起始的触摸屏幕在该悬浮球上面2:自由拖动View先解决第一个问题:public class Point extends View { private Paint mPaint; //判断是否再里面 private boolean isIn = false; private int原创 2018-01-23 17:37:27 · 1427 阅读 · 0 评论 -
Android 自定义字体样式 及系统默认字体样式 的设置
Android 能添加文字的控件都可以设置字体样式 关键字是:Typeface 在Java代码中设置或者在xml文件里面设置都可以Android系统默认给出四种样式的字体 , 分别是 : Nomal Monospace Sans Serif 要想使用自定义的字体样式先要从网上下载一个 .tty 格式的字体文件然后粘贴到项目里面 , 具体步骤如下原创 2017-09-12 15:00:33 · 14671 阅读 · 13 评论 -
生成变量时自动加上m前缀
有时候看到别人的代码变量名前面带个m 是不是觉得很帅 , 我之前一直觉得很帅 , 可是不知道怎么设置 , 都是自己手动把第一个字母大写然后前面加一个m 是不是很傻 !! 哈哈哈 分享一下 AS里面是如何设置的吧 方便和我一样的小白 前面加个m 用的时候很方便 , 不会和很多的其他形参相互混合 。实现效果图:F原创 2017-06-29 10:47:00 · 2397 阅读 · 0 评论 -
android 各国语言对应的缩写
上一篇讲了如何切换多语言 这一篇相当于一个对上篇博客的补充 当你会了上一篇的内容时 这一篇更加有用android资源文件夹的写法规则: 语言缩写-国家地区缩写 语言缩写藏语:bo_CN en英文 en_US英文 (美国) ar阿拉伯文 ar_AE阿拉伯文 (阿拉伯联合酋长国) ar_BH阿拉伯文 (巴林) ar_DZ原创 2017-07-06 10:53:30 · 1158 阅读 · 0 评论 -
Android 使用数学函数(Math函数)
在编写代码时 有时候要用到函数来解决一些角度问题之前上网查了很久,发现他们写的有的不好用......所以自己总结一下,方便自己,方便他人。我该写成了工具类了,直接把工具类贴出来吧~~public class MathUtils { public static double sinX (int x){ return Math.sin(Math.P原创 2017-07-10 11:52:28 · 5355 阅读 · 0 评论 -
Eclipse项目导入AndroidStudio
实际开发中,我们可能要修改之前人写的代码,他可能是用Eclipse写的,也可能是AS写的,如果是Eclipse写的,而且你又不想重新下载Eclipse,可以看一下这一篇博客。一般用AndroidStudio 打开Eclipse都是作为Module打开 如下图所示:接下来 选择 “import Eclipse ADT Project” 如下图:原创 2017-07-12 09:11:10 · 1037 阅读 · 0 评论 -
Android Studio 快捷键
查找所有快捷键查找快捷键[Find Action]:Ctrl+Shift+A---------------------------------------------------------------------------------------------------------------------------------------显示一些有用信息原创 2017-07-12 09:45:22 · 960 阅读 · 0 评论 -
跳转,Intent跳转页面
Inetent用法之一 跳转Activity首先需要两个Activity 新建项目有一个 还有一个要自己创建这样就会创建好一个新的Activity 如果想要自己创建的话 别忘了在Manifests 里面注册Activity如下图:创建好了之后,开始编辑两个Activity的布局activity_main.xml<Lin原创 2017-07-13 13:40:50 · 992 阅读 · 0 评论 -
单例模式的七种写法
一单例模式的介绍以及它的应用场景单例模式是应用最广的模式,也是我最先知道的一种设计模式,在深入了解单例模式之前,每当遇到如:getInstance()这样的创建实例的代码时,我都会把它当做一种单例模式的实现。其实经常使用的图片加载框架ImageLoader的实例创建就是使用了单例模式,因为这个ImageLoader中含有线程池、缓存系统、网络请求,很消耗资源,不应该创建多个对象,这时候就需要用原创 2017-07-28 14:41:27 · 957 阅读 · 2 评论 -
透明度对应数值
透明度 数值 100%FF95%F290%E685%D980%CC75%BF70%B365%原创 2017-08-03 21:09:05 · 2986 阅读 · 0 评论 -
Activity四种启动模式
Activity 的启动模式有四种,standard、singleTop、singleTask、singleInstance.1.standard准备工作:两个Aty 相同布局 Manifests修改启动方式Manifests:<activity android:name=".MainActivity" andro原创 2017-08-08 11:04:28 · 922 阅读 · 0 评论