
Android
文章平均质量分 60
张文靖同学
心里有火,眼里有光。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
GestureDetector手势相关
使用GestureDetector或者onTouchEvent建议:判断滑动的时候使用onTouchEvent 判断双击的情况下使用GestureDetectorpublic class ViewBaseKnowledge extends AppCompatActivity implements GestureDetector.OnGestureListener,GestureDetec原创 2016-12-28 18:38:10 · 380 阅读 · 0 评论 -
Android开发系列( 二)----BaseActivity
在实际的Android产品研发中,一般的我们在写Activity的时候都会继承于一个基类Activity,该Activity是所有的Activity的基类。在该基类中我们主要用于重写一些共有的逻辑。好处是显而易见的对于一些Activity的共有逻辑我们不必要在每个Activity中都重新写一遍,只需要在基类Activity中写一遍就行。1.定义一个BaseActivity通常我们把基类定义成Base原创 2017-03-15 16:37:39 · 427 阅读 · 0 评论 -
友盟第三方平台操作流程
获取SDK下载SDK操作流程下载SDK最新版 如下图所示: SDK组件说明根据需要,选择自己需要的平台、精简版/完整版Demo工程包含了源码及Apk文件,Apk可以直接安装,用于体验分享、登录功能SDK文件目录介绍main – 核心库 umeng_social_api.jarumeng_social_net.jarumeng_social_tool.jarplatforms – 分享平台库 Q转载 2017-05-12 12:07:34 · 3135 阅读 · 0 评论 -
Android Studio启动异常报错修复
Internal进来找问题的朋友有福利了,保证帮你1分钟解决问题。今天启动了AS,然后报了如下的错误,想想是因为昨天非正常关机导致的,然后搜了百度等等网站,都没有用。 最后翻墙GOOGLE后,发现了原因。解决办法简单粗暴: 删除 我的文档中 .AndroidStudioX.X 文件重新配置即可。Internal Error. Please report to https://code.google.co原创 2017-05-06 10:36:08 · 6389 阅读 · 5 评论 -
阿里开源UItraViewPage源码分析
简介UltraViewPager是一个封装多种特性的ViewPager,主要是为多页面切换场景提供统一解决方案。主要功能支持横向滑动/纵向滑动支持一屏内显示多页支持循环滚动支持定时滚动,计时器使用Handler实现支持设置ViewPager的最大宽高setRatio按比例显示UltraviewPager内置indicator,只需简单设置几个属性就可以完成展示,支持圆点和Icon内置原创 2017-08-05 17:14:30 · 1332 阅读 · 0 评论 -
Android Scroll分析
前言本篇谈论Android Scroll的应用以及如何在应用中添加滑动效果。 你可以学到: - 发生滑动效果的原因 - 如何处理、实现滑动效果1.1 滑动是如何产生的滑动一个View的本质其实就是移动一个View,改变其当钱所在的位置,他的原理和动画效果十分的相似,就是通过不断的改变View的坐标来实现这一效果,动态且不断的改变View的坐标,从而实现View跟随用户触摸滑动而滑动 但是在讲原创 2017-09-03 23:32:24 · 361 阅读 · 0 评论 -
Android---消息机制总结
消息机制是什么?android的消息机制主要是指Handler的运行机制。handler 是什么?我们说,handler是android给我们提供用来更新UI的一套机制,也是一套消息的处理机制,可以通过他来发消息 也可以用他来处理消息为什么使用handlerandroid设计的时候就封装了一套这样的消息创建 传递 处理机制 否则就会抛出异常的。主要原因就是为了解决在子线程中无原创 2017-03-17 16:40:08 · 524 阅读 · 0 评论 -
Bitmap加载和Cache
Bitmap高效加载BitmapFactory四个方法 decodeFile decodeResource decodeStream decodeByteArray高效的加载Bitmap才有BitmapFactory.Options 可以很方便的对一个图片进行缩放 inSampleSize:采样率 缩放大小是2的次方形式递减 加载图片遵循的4个步骤代码如下: p...原创 2017-01-06 18:23:31 · 576 阅读 · 0 评论 -
Android Studio 使用技巧
Getter and Setter判断null的模板方法此方法是修改Android 的模板方法来判断Bean类中服务器返回的内容是否为Null. 由于在不同的环境下,服务器返回的内容通常是String int等,但是不排除可能出现null的情况,通常我们都是每个地方都处理是否为Null。 在这里有个更快捷的方法,直接对Bean类判断是否为null. 不仅可以判断String 以及标准数据类...原创 2018-04-08 15:40:40 · 438 阅读 · 0 评论 -
GSON解析使用技巧高级应用
记得有次面试,面试官问了这么一个问题。如果服务器端返回的某个字段有的时候可能是一个int 有的时候是个String 有的时候是个数组怎么处理。(当时一脸懵逼)就说改啊~ 好吧,你回去等通知吧。。GG..在日常开发中,服务器端有可能将一个字段返回多种内容,有可能是在不同环境下出现的这种情况,也有可能设定的为这种情况要怎么处理呢。其实Gson的一个用法就可以满足这种需求,下面我们看一下要处理的...原创 2018-04-10 10:30:32 · 973 阅读 · 1 评论 -
Android Studio开发常见问题及解决办法
Android 4.x中 multidex相关问题在android 4.x以上,遇到64K问题通常是要添加依赖:com.android.support:multidex:1.0.1并且multiDexEnabled设置为true defaultConfig { multiDexEnabled true }不过在4.x的手机上仅仅添加这些是回报如下错误...原创 2018-04-18 15:30:45 · 1484 阅读 · 0 评论 -
Android开发系列(一)----开发规范
1、开发规范的作用减少维护花费提高可读性加快工作交接减少名字增生降低缺陷引入的机会2、命名规范2.1.1常量命名规范:通常都遵循望文知意的原则,常量通常储存经常使用且变化不多得数据。2.1.2规则: 1. 全部为大写字母 2. 中间以“_”连接 3. 望文知意2.1.3例子:比如写一个游戏关卡的关数: static final int MY_GAME_LEVEL=1;原创 2017-03-15 10:49:06 · 490 阅读 · 0 评论 -
仿微博发现界面
仿微博发现界面先上效果图: public class MainActivity extends AppCompatActivity { //fragment的适配器 private MainTabFragmentAdapter mainTabFragmentAdapter; //viewpager private ViewPager mViewPager; //左原创 2017-03-09 17:36:00 · 872 阅读 · 0 评论 -
Android-App性能优化
代码的优化数据结构的选择SpareArray代替HashMapSpareBooleanArraySpareIntArrarySpareLongArrarySpareArray <.String.>SpareArray线程不安全的 要进行二分查找,SpareArray会对插入的数据按照Key值大小顺序插入 对删除做了优化 不会立即删除而是通过设置标识位(DELETED)方式.Handle原创 2017-01-05 22:08:05 · 506 阅读 · 0 评论 -
Android-App竞品分析
App的研发和制作过程中,为了更好的在市场上有一定的优势,需要征集市场上或者是跟自己的产品有一定竞争的产品中的技术要点和技术的分析.以达到知己知彼的效果. 下面分析几个常见的问题:安装包的大小推送的音频设置在10KB左右就可以 图片不要超过1MBpng和jpg的区别和使用场景 png有透明通道,jpg没有 png是无损压缩,jpg有损压缩 手机会对png格式的图片进行硬件加速,从而导致了pn原创 2017-01-09 15:17:27 · 714 阅读 · 0 评论 -
HttpClient
在build.gradle中 android下面添加: useLibrary ‘org.apache.http.legacy’buil.gradlecompile files('src/main/libs/httpcore-4.4.3.jar')compile files('src/main/libs/commons-codec-1.9.jar')compile files('src/main/l原创 2017-01-09 21:30:32 · 333 阅读 · 0 评论 -
Android----网络底层框架设计
AsyncTask使用的缺点致命缺点就是不能灵活的控制其内部的线程池. 例子:比如使用2G 或者是3G上网,请求会花费很长的时间,在这期间去跳转二级界面,可能会在线程池中出现积压的状态 被阻塞了使用原生的ThreadPoolExecutor+Runnable+Handle原创 2017-01-10 21:27:51 · 770 阅读 · 0 评论 -
Android---四大组件之广播机制
作为android四大组件之一的广播,它注册时分为动态注册和静态注册。还有标准广播动态注册Demo配置文件中配置权限:<uses-permission android:name="android.permission.INTERNET" /> <!-- 访问系统网络状态权限 --><uses-permission android:name="android.permission.ACCES原创 2017-01-13 18:09:01 · 404 阅读 · 0 评论 -
Android---Crash三部曲---收集
通过CrashHandler来监视应用的crash信息,给程序设置野鬼CrashHandler,这样当程序crash时就会调用CrashHandler的uncaughtException方法.在这个方法中我们可以获取crash信息并上传到服务器public class CrashHandler implements Thread.UncaughtExceptionHandler { priv原创 2017-01-17 17:24:07 · 340 阅读 · 0 评论 -
SQLite开源库LitePal
Github: https://github.com/LitePalFramework/LitePal使用:首先配置AndroidManifest.xmlandroid:name="org.litepal.LitePalApplication"assets文件夹中新建XML文件<?xml version="1.0" encoding="utf-8"?><litepal> <dbname原创 2017-02-09 11:52:50 · 3123 阅读 · 2 评论 -
技术堆栈---6.0新特性之运行时权限
public class MainActivity extends AppCompatActivity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);原创 2017-02-09 13:52:04 · 473 阅读 · 0 评论 -
Android6.0---运行时权限
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button= (Button) findViewById(R.id.mbtn);原创 2017-01-26 17:23:43 · 366 阅读 · 0 评论 -
Android网络请求框架----okHttp3
okhttp GitHub地址: https://github.com/square/okhttp 最新的OkHttp依赖可以到官方的GitHub上去添加。目前官方的依赖地址为: compile ‘com.squareup.okhttp3:okhttp:3.6.0’Get请求直接进入主题: // 1、拿到OKHttpClient对象 OkHttpClient ok原创 2017-03-15 16:48:48 · 978 阅读 · 0 评论 -
Activity常用的几个标志位总结:
除了XML文件中刻意设置启动模式.在JAVA代码中也可以通过标记位来设制启动模式和影响Activity的运行状态 //设置标记为过程 Intent intent=new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);常用标志位Intent.FLAG_ACTIVITY_NEW_TASK原创 2017-02-25 11:47:58 · 1041 阅读 · 0 评论 -
Android注解篇-各类型注解的意义以及使用场景
前言注解(Annotation),是源码中特殊的语法元数据,类、方法、变量、参数都可以被注解。利用注解可以标记源码以便编译器为源码生成文档和检查代码,也可以让编译器和注解处理器在编译时根据注解自动生成代码,甚至可以保留到运行时以便改变运行时的行为。 内置注解@Override 注解用来表明该方法是重写父类方法,编译器会负责检查该方法与父类方法的声明是否一致。@Deprecate...原创 2018-04-20 16:26:32 · 2270 阅读 · 0 评论