![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
leandom
这个作者很懒,什么都没留下…
展开
-
res下的 drawable 是如何解析成 Drawable 对象?
Drawable 可以方便的作为View的背景使用,也可以做为 ListView 的 divider 等等。在res/drawable下通过xml可以很方便的定义一个Drawable,显然我们的 View 是无法直接使用这个 xml 文件的,它必须先解析成 Drawable 对象才能供我们的 View 显示。那么这个xml文件是如何解析为 Drawable 对象的呢?Drawable简单使用在 re原创 2016-09-22 19:26:12 · 4768 阅读 · 0 评论 -
巧用 Drawable 之实现一个最简单的自定义电池图标
在 Android 中自定义一个电池图标,一般是采用自定义 View,在 onDraw 中采用 Canvas 去绘制 Bitmap 或者各种几何图形。但是自定义 View 对初学者来说可能会有一点难度,那么有没有更简单的办法来实现自定义电池图标呢?实现电池图标 Drawable我们来分析下绘制一个电池图标我们需要做些什么?如图所示,电池图标可看成有三种状态,空的,满的,介于空和满的。那我们就可以这么原创 2016-09-23 00:43:21 · 2918 阅读 · 0 评论 -
SharePreference技巧之保存一个对象
在Android中我们经常需要持久化保存数据,这时可以使用文件,SharePreference,以及SQLite等。如果我想保存一个对象呢?有些人会立马想到用orm框架,但是我可能不想依赖这个框架。实际上如果数据量不大,用SharePreference可能会更适合。我们完全可以自己实现一个SharePreference版的持久化保存对象的工具类。直接看代码public class SpUtils {原创 2017-08-22 14:57:22 · 3556 阅读 · 0 评论 -
Android动态栅格布局另类实现
前言在app开发中,我们可能会有这样的需求,页面中的某个布局像表格一样,但必须支持动态修改布局。以值得买为例,如下图: 红框区域布局可能需要动态改变,比如我今天显示8个item,明天可能只显示4个item,但是布局都是规则的矩形块。这个要怎么实现呢?在我们的项目中也有类似的需求,一开始我们是采用WebView去实现,但是WebView毕竟比较重,能用原生实现的当然尽量要用原生去实现。我苦思冥想原创 2017-09-03 18:50:05 · 2630 阅读 · 1 评论 -
Fragment懒加载(支持嵌套) 友盟统计Fragment时长最佳实践
Fragmeng生命周期中有onResume,onPause,这两个生命周期是跟随Activity的。当调用getSupportFragmentManager().beginTransaction().hide(fragment)时或者滑动ViewPager隐藏Fragment时,Fragment的这两个生命周期都不会回调。那么,如何得到Fragment可见时的回调呢?如何得到Fragment不可见时的回调呢?原创 2017-04-22 20:31:25 · 2342 阅读 · 0 评论 -
打造一个简单实用的安卓广告栏控件
思路在 循环 ViewPager 的两种实现方法这篇文章中介绍了广告栏的两种实现思路,但是直接用到项目中还是会有不少问题。方法1:将 count 设为无限大,制造一种假的循环 这种方法在实际的项目中容易导致anr,在调用setCurrentItem或者在数据集发生改变时调用notifyDataSetChanged时可能会导致anr。方法2:在 ViewPager 的首尾添加一个重复的原创 2017-02-25 12:42:05 · 954 阅读 · 0 评论 -
Android 模仿QQ登录界面解决软键盘遮挡问题
Android 软件盘弹出可能会遮挡住界面上的某些控件。当 windowSoftInputMode 为 adjustPan 时,一般不会挡住 EditText,但是假如 EditText 下面是一个登录按钮,那么这个按钮就可能被挡住,但有时我们希望用户输完密码可以直接点击登录按钮,而不用把软键盘收起来。这时就需要用到 adjustResize,这种模式能够获取到软键盘的高度,这样我们就能够精确的对界原创 2016-09-21 13:58:39 · 4608 阅读 · 4 评论 -
Android 网络框架 Volley 源码解析
Volley 是 Google 官方推出的一套 Android 网络请求库,特别适用于通信频繁、数据量较小的网络请求。Volley 能够根据当前手机版本选择 HttpClient (2.3 以下) 或者 HttpUrlConnection。Volley 框架扩展性很强,其源码值得我们好好学习。除了 Volley,Android 常用的网络加载库还有 OkHttp,Retrofit 等,关于这几个的区原创 2016-09-22 00:16:46 · 366 阅读 · 0 评论 -
Android 软键盘之 windowSoftInputMode 分析
Android 软键盘弹出可能会遮挡住界面上的 EditText 或者是其他控件,有时还会出现莫名其妙的问题,解决软键盘问题,先从 windowSoftInputMode 入手。windowSoftInputMode 常用的有 adjustPan,adjustResize,adjustNothing 等。本文也只研究这几个属性,其他可自行百度。为 Activity 指定 windowSoftInpu原创 2016-09-21 11:36:29 · 1657 阅读 · 0 评论 -
循环 ViewPager 的两种实现方法
ViewPager 是不能循环滚动的,但是在项目中可能需要用到循环滚动的 ViewPager,比如广告栏。下面介绍循环 ViewPager 的两种实现方式。方法1:将 count 设为尽可能的大,制造一种假的循环。这是网上出现比较多的方法,实现起来较为简单。需要注意的是,我们需要设置 ViewPager 的初始 position,否则第一页无法向右滑动。直接看代码。public class Mai原创 2016-09-20 15:33:58 · 560 阅读 · 0 评论 -
PopupWindow自定义动画 在onDismiss执行动画无效的解决办法
需求分析在PopupWindow中,可以通过setAnimationStyle给PopupWindow设置一个动画,但是这个动画只能针对对整个PopupWindow做动画,有比较大的局限性,可能不能满足需求。setAnimationStyle局限性: 1. 不能只对PopupWindow中的某个View做动画。 2. 做平移动画时可能会遮挡Activity中的某些View。比如下面这个:原创 2017-09-02 19:17:20 · 3218 阅读 · 1 评论