![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 59
aptentity
这个作者很懒,什么都没留下…
展开
-
Glide:调整图片大小
用Glide时,如果图片不需要自动适配ImageView,调用override(horizontalSize, verticalSize),它会在将图片显示在ImageView之前调整图片的大小。int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 200, mContext.getResource原创 2017-03-20 15:18:22 · 9402 阅读 · 1 评论 -
glide:缩放图片
Glide提供了变换去处理图片显示,通过设置centerCrop 和 fitCenter,可以得到两个不同的效果。CenterCrop()会缩放图片让图片充满整个ImageView的边框,然后裁掉超出的部分。ImageVIew会被完全填充满,但是图片可能不能完全显示出。String url = mDatas[position]; int width = (int) T原创 2017-03-20 15:21:25 · 1108 阅读 · 0 评论 -
textview:单行显示,多余的省略
有时候在ListView中显示Textview时由于长度过长而导致text会隔行显示,UI上看起来就比较的不友好。 官方提供了相关的实现单行显示的方法。 android:id="@+id/music_title" android:layout_width="wrap_content"转载 2017-03-20 17:04:37 · 972 阅读 · 0 评论 -
glide:基本用法
http://www.cnblogs.com/guilin-hu/p/5706916.html导入Picasso和Glide都在jcenter上。在项目中添加依赖非常简单:Picassodependencies { compile 'com.squareup.picasso:picasso:2.5.1' } Glide dependen转载 2017-03-20 18:04:54 · 331 阅读 · 0 评论 -
EventBus3.0详解
写在前面1.前言曾经,一层又一层的业务逻辑让我不知所措,一个又一个的回调让你头晕眼花,一个又一个的参数让你混乱不堪。EventBus,,一个耦合度低到令你害怕的框架。2.什么是EventBusEventBus是一个消息总线,以观察者模式实现,用于简化程序的组件、线程通信,可以轻易切换线程、开辟线程。EventBus3.0跟先前版本的区别在于加入了annotation @Subscr转载 2017-03-27 22:09:03 · 514 阅读 · 0 评论 -
移动端数据库新王者:realm
介绍realm是一个跨平台移动数据库引擎,支持iOS、OS X(Objective-C和Swift)以及Android。2014年7月发布。由YCombinator孵化的创业团队历时几年打造,是第一个专门针对移动平台设计的数据库。目标是取代SQLite。为了彻底解决性能问题,核心数据引擎C++打造,并不是建立在SQLite之上的ORM。如果对数据引擎实现想深入了解可以查看:Realm转载 2017-03-28 12:11:31 · 251 阅读 · 0 评论 -
fragment:传递参数
如果Activity需要传递参数到Fragment,推荐的方法是使用Fragemt.setArguments例如MyFragment fragment =new MyFragment();Bundle bundle = new Bundle();bundle.putString("type",mType);fragment.setArguments(bundle);在原创 2017-03-21 14:11:10 · 309 阅读 · 0 评论 -
AppWidget:基本使用
http://www.cnblogs.com/skywang12345/p/3158310.html1 App Widget简介App Widget是应用程序窗口小部件(Widget)是微型的应用程序视图,它可以被嵌入到其它应用程序中(比如桌面)并接收周期性的更新。你可以通过一个App Widget Provider来发布一个Widget。本文参考Android官方文本,先介绍Ap转载 2017-03-21 17:41:59 · 9372 阅读 · 0 评论 -
glide:加载图片到通知栏和应用小部件中
http://blog.csdn.net/xx326664162/article/details/50965259http://mrfu.me/2016/02/27/Glide_Loading_Images_into_Notifications_and_AppWidgets/加载图片到 Notifications通知栏图标对用户来说是重要的上下文。用 Notif转载 2017-03-21 17:51:16 · 564 阅读 · 0 评论 -
glide:3.0新特性
1.动态的GIF图片加载:Glide.with(context).load(...).asBitmap() //显示gif静态图片Glide.with(context).load(...).asGif() //显示gif动态图片2.本地视频快照:Glide现在还可以把视频解码为一张图片:Glide.with(context).load(“视频路径“)(经过我的测试,只能把手机转载 2017-03-21 21:22:01 · 729 阅读 · 0 评论 -
内存优化:内存管理机制
Google在Android的官网上有这样一篇文章,初步介绍了Android是如何管理应用的进程与内存分配:http://developer.android.com/training/articles/memory.html。Android系统的Dalvik虚拟机扮演了常规的内存垃圾自动回收的角色,Android系统没有为内存提供交换区,它使用paging与memory-mapping(mmapp转载 2017-03-21 22:02:23 · 363 阅读 · 0 评论 -
glide:高级加载
从Res资源中加载首先介绍从Android资源中加载。不同于上一节的String类型的网络URL,这里是一个Int型的的资源id。int resourceId = R.mipmap.ic_launcher;Glide .with(context) .load(resourceId) .into(imageViewResource);如果你觉得R.mipmap转载 2017-03-21 22:14:57 · 410 阅读 · 0 评论 -
glide:适配器(ListView, GridView)
相册展示: ListView第一步,我们需要准备些测试图片。我们从eatfoody.com网站获取一些美食图片链接imgurpublic static String[] eatFoodyImages = { "http://i.imgur.com/rFLNqWI.jpg", "http://i.imgur.com/C9pBVt7.jpg",转载 2017-03-21 22:17:30 · 307 阅读 · 0 评论 -
glide:缓存基础
缓存基础Android应用中一个较好的图片的处理加载,会最小化网络请求的消耗。Glide也是一样,默认使用内存和磁盘缓存来避免不必要的网络请求。我们将在后续的文章中详细介绍这些细节。如果你等不及,可以去浏览一下关于这个主题的官方文档。目前,重要的处理方式是所有的图片请求都会被缓存在内存和磁盘上。大多数情况下,缓存是一个非常有用的东西,但在一些特殊的情况下并不是很明智。在下一节中,我们会介绍转载 2017-03-21 22:29:59 · 263 阅读 · 0 评论 -
glide:请求优先级
图片请求优先级你经常会遇到这些情况,你的app需要同时加载多个图片。假设你正在创建一个信息展示界面,包含顶部的一个主要照片,还有底部的2个并不重要的小图。对于用户体验,我们最好先加载主角照片,然后再加载底部不紧急的图片。Glide里的.priority()方法和Priority的枚举变量支持你的想法。在看例子之前,我们先看一下作为.priority()方法参数的Priority的枚举变量。转载 2017-03-21 22:32:49 · 1599 阅读 · 0 评论 -
glide:缩略图
缩略图的优点在使用缩略图进行优化之前,确保你已经明白了之前介绍的缓存和请求优先级。如果你已经尝试了之前介绍的所有方法,现在来看看缩略图能否帮助你进一步提升你的app。缩略图不同于前面文章中提到的占位图。占位图应当是跟app绑定在一起的资源。缩略图是一个动态的占位图,可以从网络加载。缩略图也会被先加载,直到实际图片请求加载完毕。如果因为某些原因,缩略图获得的时间晚于原始图片,它并不会替代原始转载 2017-03-21 22:35:07 · 1685 阅读 · 0 评论 -
glide: 回调:定制view中使用SimpleTarget和ViewTarget
Glide中的回调:Target目前为止,我们已经能够很方便地使用Glide去加载图片到ImageView中。在应用场景中,Glide隐藏了大量复杂的工作。Glide在后台线程中处理了所有的网络请求,一旦结果准备完毕,就会调用UI线程更新ImageVIew。在这篇文章中,我们假设我们并没有ImageView作为图片加载的目标。我们只需要Bitmap本身。Glide提供了一个用Target获转载 2017-03-21 22:38:21 · 1710 阅读 · 0 评论 -
glide:异常: 调试和报错处理
本地调试Glide的常规请求里提供了一个方法设置Log的层级。不幸地是,你没法轻易在产品使用中轻易获取。但,也有一个很简单的方法获得Glide的调试log。你只要通过adb shell,打开terminal,然后使用下面的命令行:adb shell setprop log.tag.GenericRequest DEBUG最后一部分DEBUG来自标准Android的log常量。因此,作为转载 2017-03-21 22:41:36 · 8344 阅读 · 0 评论 -
Android 数据库框架ormlite 使用精要
前言本篇博客记录一下笔者在实际开发中使用到的一个数据库框架,这个可以让我们快速实现数据库操作,避免频繁手写sql,提高我们的开发效率,减少出错的机率。ormlite是什么?首先可以去它的官网看看www.ormlite.com,它的英文全称是Object Relational Mapping,意思是对象关系映射;如果接触过Java EE开发的,一定知道Java Web开发就有一个类似的数转载 2017-03-28 22:04:15 · 208 阅读 · 0 评论 -
LitePal详解
一、首先,找到你下载的litepal。jar,将litepal-1.1.1-src.jar复制到你工程的libs目录, 这还没完, 配置LitePalApplication由于操作数据库时需要用到Context,而我们显然不希望在每个接口中都去传一遍这个参数,那样操作数据库就显得太繁琐了。因此,LitePal使用了一个方法来简化掉Context这个参数,只需要在AndroidManifest.xm转载 2017-03-28 22:07:10 · 920 阅读 · 0 评论 -
GreenDao3.0简单使用
关于GreenDaogreenDao是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案。关于greenDAO的概念可以看官网greenDAOgreenDAO 优势1、一个精简的库2、性能最大化3、内存开销最小化4、易于使用的 APIs5、对 Android 进行高度优化GreenDao 3.0使用GreenDao 3.0采用注解的方式来定义实转载 2017-03-28 22:08:30 · 286 阅读 · 0 评论 -
SqlBrite – 用 RxJava 来访问数据库
SqlBrite是对 Android 系统的 SQLiteOpenHelper 和 ContentResolver 的轻量级 Rx 封装,用来在 RxJava 中使用。如何使用创建一个 SqlBrite 对象,该对象是该库的入口:SqlBritesqlBrite = SqlBrite.create(); 需要注意的是,为了方便调试查询语句和结果,在创建 SqlB转载 2017-03-28 22:19:38 · 503 阅读 · 0 评论 -
glide:自定义变换
变换在图片显示出之前可以对图片进行变换处理。例如,如果你的app需要显示一张灰度图,但只能获取到一个原始全色彩的版本,你可以使用一个变换去将图片从有明艳色彩的版本转换成惨淡的黑白版。不要误会我们,变换不仅限于颜色。你可以改变图片的很多属性:大小、边框、色彩、像素点,等等!在之前介绍用Glide调整图片大小时,已经介绍了自带的两个变换fitCenter和centerCrop。这两个方案都有一转载 2017-03-22 07:01:21 · 348 阅读 · 0 评论 -
glide:用animate()定制动画
动画基础图片之间的平滑切换是非常重要的。用户希望app里没有较突兀的跳变。Glide的动画就是为了解决这个问题。Glide自带了一个标准的动画去减轻UI中的变化,就是之前的文章中用过的.crossFade()。但在这篇文章中,我们会学习另外一个不同于.crossFade()的方案。Glide提供了两个方案*去设置动画。两个版本都用.animate()方法,但是需要传入不一样的参数。在我转载 2017-03-22 07:04:58 · 580 阅读 · 0 评论 -
glide:整合网络协议栈
整合网络协议栈通过HTTP/HTTPS从网络下载图片,是显示图片的一个重要的环节。虽然标准的Android网络包可以完成这些工作,但是仍然有很多开发者为了改善android的网络做了一些开发。每个库都有自己的优点和缺点。最终取决于项目的实际需求和开发者的个人爱好。Glide的开发者不强迫你使用他们推荐的网络库。所以,Glide是无关HTTP/S的。理论上,它能实现基本的网络功能,在任何情况转载 2017-03-22 07:07:20 · 431 阅读 · 0 评论 -
glide:用Modules定制Glide
Glide ModulesGlide modules是一个全局改变Glide行为的抽象的方式。你需要创建Glide的实例,来访问GlideBuilder。可以通过创建一个公共的类,实现GlideModule的接口来定制Glide:public class SimpleGlideModule implements GlideModule { @Override public vo转载 2017-03-22 07:09:30 · 357 阅读 · 0 评论 -
glide:Glide Module 案例: 接受自签名HTTPS证书
用GlideModule定制Glide在看下面的之前,请确保你看完并理解了前面文章关于GlideModules部分。我们不会在本文中再次回顾基础,而是直接跳到问题。所以确保你打好GlideModule的基础。你已经知道GlideModule提供了两个方法改变行为。上篇文章,我们学习了第一个方法applyOption()。本文我们使用另一个方法registerComponents()去设置一转载 2017-03-22 07:11:31 · 408 阅读 · 0 评论 -
glide:Glide Module案例: 自定义缓存
自定义内存缓存 希望你已经读过缓存的基础知识和Glide module的文章。否则下面的代码可能看不懂。如果你准备好了,那就开始看吧。既然我们自定义Glide,我们需要创建一个Glide module。在前面的文章中介绍过,applyOptions方法提供了访问GlideBuilder对象的方法。GlideBuilder方法提供了几个方法去自定义Glide的缓存。首先,看看内存缓存。内转载 2017-03-22 07:14:23 · 519 阅读 · 0 评论 -
glide:Glide Module 案例: 通过加载自定义大小图片优化
为何请求特定尺寸图片我们在做的最新项目用到一个媒体服务器,提供非常高的分辨率图片服务(图片分辨率在6000x4500像素)。我们可以使用直接链接到源文件,在考虑设备带宽、内存和电池的时候是相当低效的。即使在今天的设备上显示高分辨率,对于显示如此极端的分辨率,还是没有任何好处。因此Glide总是测量ImageView的尺寸,然后降低图片的内存消耗以匹配它。然而,无法避免要去下载和计算,完成降低图转载 2017-03-22 07:16:35 · 1534 阅读 · 0 评论 -
glide:动态使用 Model Loaders
自定义图片大小提示:如果你没有读之前的文章,确保你看了。否则下面内容会让你困惑。作个快速回顾:通常Glide请求是从GlideUrl类中生成。上篇文章,我们展示了如何创建一个新的接口,额外将宽度和高度添加到考虑范围:public interface CustomImageSizeModel { String requestCustomSizeUrl(int width, i转载 2017-03-22 07:19:38 · 287 阅读 · 0 评论 -
glide:如何旋转图片
如何用Glide旋转图片实际上android.graphics.Matrix类正好提供了我们需要的。旋转图片的代码实际上非常直截了当:Bitmap toTransform = ... // your bitmap sourceMatrix matrix = new Matrix(); matrix.postRotate(rotateRotationAngle);Bitmap.c转载 2017-03-22 07:21:32 · 1694 阅读 · 0 评论 -
glide:源码解析
基础知识Glide中有一部分单词,我不知道用什么中文可以确切的表达出含义,用英文单词可能在行文中更加合适,还有一些词在Glide中有特别的含义,我理解的可能也不深入,这里先记录一下。(1)View: 一般情况下,指Android中的View及其子类控件(包括自定义的),尤其指ImageView。这些控件可在上面绘制Drawable(2)Target: Glide中重要的概念,目标。它即转载 2017-03-22 07:58:40 · 228 阅读 · 0 评论 -
性能优化:启动速度
1)App Launch time 101提高程序的启动速度意义重大,很显然,启动时间越短,用户才越有耐心等待打开这个 App 进行使用。反之启动时间越长,用户则越有可能来不及等到 App 打开就已经切换到其他 App 了。程序启动过程中的那些复杂错误的操作很可能导致严重的性能问题。Android 系统会根据用户的操作行为调整程序的显示策略,用来提高程序的显示性能。例如,一旦用户点击桌面图转载 2017-03-22 16:57:22 · 753 阅读 · 0 评论 -
性能优化:减少应用程序安装包的大小
减少应用程序安装包的大小,不仅仅减少了用户的网络数据流量还减少了下载等待的时间。毋庸置疑,尽量减少程序安装包的大小是十分有必要的。通常来说,减少程序安装包的大小有两条规律:要么减少程序资源的大小,要么就是减少程序的代码量。这里总结一个简易版的减少安装包大小的 Checklist。减少程序图片资源的大小1. 确保在 build.gradle 文件中开启了minifEnabled与shrink转载 2017-03-22 17:05:30 · 1375 阅读 · 0 评论 -
性能优化:VectorDrawable
针对不同的分辨率提供多张精度的图片会额外增加 APK 的大小,这个问题的解决方案是考虑使用 VectorDrawable,它仅仅只需要一个文件,能够动态生成对应分辨率的图片。VectorDrawable通过XML文件描述图片的形状,大小,样式。通过这种方式,我们可以显著减少图片资源对安装包大小的影响。使用 VectorDrawable 还可以避免因为使用帧动画导致的图片资源转载 2017-03-22 17:07:30 · 812 阅读 · 0 评论 -
VectorDrawable:适应不同分辨率的drawable资源
这篇文章是对VectorDrawable的简单介绍,主要参考了android官方文档。更详细的讲解请参考stylingandroid网站的3篇文章 https://blog.stylingandroid.com/vectordrawables-part-1/ ,或者关注本站将发表的翻译版本。一、VectorDrawable在android5.0(API Level 21)中,我们可以使转载 2017-03-22 17:09:49 · 425 阅读 · 0 评论 -
android studio 插件 gradle view 查看gradle依赖树
依赖分析在使用maven时,设置依赖时总也是会有一些冲突的意外。而eclipse 或 myeclipse 对maven的支持中,有个可以分析依赖树的工具,挺好用的。那么Android studio中有没有能够分析Gradle 依赖树的工具呢?答案是肯定的,有! 下面就来介绍gradle view这个插件。安装 gradle viewstep1 打开设置进入plugi转载 2017-03-29 17:08:38 · 1219 阅读 · 0 评论 -
性能优化:多线程
1) Threading Performance在程序开发的实践当中,为了让程序表现得更加流畅,我们肯定会需要使用到多线程来提升程序的并发执行性能。但是编写多线程并发的代码一直以来都是一个相对棘手的问题,所以想要获得更佳的程序性能,我们非常有必要掌握多线程并发编程的基础技能。众所周知,Android程序的大多数代码操作都必须执行在主线程,例如系统事件(例如设备屏幕发生旋转),输入事件(例如转载 2017-03-22 17:25:36 · 4657 阅读 · 0 评论 -
性能优化:更高效的 ArrayMap
1) Fun with ArrayMaps程序内存的管理是否合理高效对应用的性能有着很大的影响,有的时候对容器的使用不当也会导致内存管理效率低下。Android为移动操作系统特意编写了一些更加高效的容器,例如SparseArray,今天要介绍的是一个新的容器,叫做ArrayMap。我们经常会使用到HashMap这个容器,它非常好用,但是却很占用内存。下图演示了HashMap的简要工转载 2017-03-22 17:34:07 · 1933 阅读 · 0 评论 -
android Priority Job Queue 入门
1. 简介 Android Priority Job Queue是一款专门为Android平台编写,实现了Job Queue的后台任务队列类库,能够轻松的在后台执行定时任务,提高用户体验和应用的稳定性。github地址:https://github.com/path/android-priority-jobqueue2. 背景 几乎所有的应用程序都存在后台线程工作。这些“背转载 2017-03-29 19:57:35 · 282 阅读 · 0 评论