Android
文章平均质量分 69
lyloou
这个作者很懒,什么都没留下…
展开
-
【Android】读《第一行代码》笔记总结
第二章感悟:每一次学习,都会有新的收获我相信我看到的奇迹,没有是平白无故产生的,它们是源于环环相扣的逻辑巧妙组合而成。隐藏标题栏(p35)在调用setContentView()之前,写上下面代码:requestWindowFeature(Window.FEATURE_NO_TITLE);隐式Intent(p44)隐式里的category和data就像原创 2015-09-26 15:26:54 · 1843 阅读 · 1 评论 -
【Android】布局——图片紧随文字
【关键词】Android 图片紧随文字 多行文字挤压图片【问题】实现如效果图的布局,其中中间部分的文字和图片是紧挨着的;要考虑适配情况,文字太多的时候,如果处理不当,图片会被挤压出去,看不到图片;【效果图】针对中间部分的文字和图片,在最左边有图片和最右边都有内容(例如图片)的情况下该如何布局? 【分析】如果TextView的宽度设原创 2016-04-18 19:41:09 · 2210 阅读 · 0 评论 -
【Android】自定义View —— 数字加减
【关键词】自定义View 数字【问题】给定最大值和最小值,点击“向上”按钮增加数字,点击“向下”按钮减少数字,超过最大值或最小值循环显示;长按按钮,开始自增或自减;非长按状态下拖动一定距离开始自增或自减;可以获取当前值;【效果图】【解决方案】见下面源代码;【代码】用法 xml android:id="@+id/nv"原创 2016-02-25 20:35:02 · 2211 阅读 · 0 评论 -
【Android】使用技巧 —— 快速进入某一界面
【关键词】android技巧 导航【问题】开发一个比较大的应用的时候,可能只是负责某一个模块;如果这个模块层次比较深(点击多次才能进入),那么调试的时候,每次都点击那么多次,就会显得很难受;如果不符合进入自己负责的模块的条件,那么将无法进入到自己的模块中进行调试;有没有什么办法直接进入到自己的模块中呢?【解决方案】特性:一个应用可以有多个入口;给自己的模块里的 ac原创 2016-02-26 19:36:35 · 614 阅读 · 0 评论 -
【Android】自定义View —— 水波纹
【关键词】水波纹 涟漪 自定义View【问题】通过自定义 View 实现点击时出现水波纹的效果;【效果图】【分析】按下时,获取当前触摸点的坐标;以当前触摸点(Action_down 和 Action_move)为圆心,不断画圆;按下时开始绘制波纹,且速度较慢;松开后加快绘制速度,直到结束;【解决方案】在 onDraw 中,不断地增加圆的半径,原创 2016-03-07 19:46:05 · 891 阅读 · 1 评论 -
【Android】动画 —— view高度渐变的动画
【关键词】Android 高度 动画【问题】实现可见度为 gone 的 view ,高度从0变化到测量的高度;如果view 可见度为 gone, 直接通过 view.getHeight();得到的是0;虽然可以通过一个固定值来设置高度,但是如果高度设置的不准就会存在适配问题(应该有一种方法在gone的情况下也可以获取到view的高度);【效果图】【分析】原创 2016-03-17 19:16:23 · 7966 阅读 · 1 评论 -
【Android】通用系列 —— 对话框
【关键词】通用系列 对话框 Dialog【问题】打造一个通用的对话框;【效果图】【分析】使用通用Adapter的类似思想;【解决方案】【代码】使用方法private void showInputPasswordDialog() { LouDialog.getInstance(mContext, R.layout.dialog_input_password, ...原创 2016-03-29 19:14:47 · 556 阅读 · 0 评论 -
【Android】通用系列 —— 下拉刷新之继承ListView的下拉刷新
【关键词】通用系列 下拉刷新 ``【问题】打造一个通用的下拉刷新ListView控件;【效果图】【分析】【解决方案】见源码;【代码】使用方法[activity_pull_to_refresh.xml] android:id="@+id/scan_lv" android:layout_width="m原创 2016-03-30 21:22:56 · 407 阅读 · 0 评论 -
【Android】工具 —— Eclipse常用功能
快捷键· 上一个编辑窗口:Ctrl+Pgup· 下一个编辑窗口:Ctrl+Pgdn· 激活编辑窗口(当焦点处在Package Explorer或者LogCat时,按下此键即可激活编辑窗口):F12· 运行程序:Ctrl+F11 (注意:在布局文件下,该快捷键不可用)· 删除当前行:Ctrl+D· 图形视图和代码视图之间切换:Alt+Pgup/Pgdn(注意:只能在布局文件中原创 2016-04-13 22:15:21 · 424 阅读 · 0 评论 -
【Android】通用系列 —— AbsListView适配器
【关键词】Adapter 通用适配器【问题】打造一个通用的Adapter,而不为是每一个ListView或GridView都重复写Adpater;【效果图】【分析】【解决方案】【使用方法】 private LouAdapter mLouAdapter; private void initView() { ListView lvM原创 2016-03-23 20:36:08 · 819 阅读 · 0 评论 -
【Android】ListView加载网络图片(解决图片错位问题)
【关键词】ListView 图片错乱 网络加载【问题】在ListView中使用图片作为头像时,发生图片错位;使用圆角图片;【效果图】【分析】· 见源码注释;【解决方案】使用方法holder.putImg(R.id.iv_group_icon, group.getSmallIcon(), true)【代码】结合通用Ada原创 2016-03-26 22:11:04 · 2210 阅读 · 0 评论 -
【Android】通用系列 —— 用简单通用的方式操作ListView
【关键词】通用系列 ListView【问题】在使用ListView的过程中,总是不断的重复写Adapter,ViewHolder等代码,很繁琐;想个办法,不论是简单的Item布局还是复杂的Item布局,都可以用同一种方案快速实现出来;【效果图】【分析】/** * 特色功能: * ★ 通用(使用ListView和GridView的地方都可以用此原创 2016-05-07 11:38:21 · 2049 阅读 · 0 评论 -
【Android】通用系列 —— 数据持久化(通用的SharedPreference封装)
关键字SharedPreference 通用系列 数据存储摘要: 主要内容: 本文介绍了封装后的SharedPreference,以便快速开发; 只保留必要的定制,重复的代码封装到一个通用类中;说明具体用法参照UspDemo.java文件;通用源文件为Usp.java代码【用法】//: TestUsp.javaString KEY_FIRST = "FIRST";Ulog.原创 2016-07-13 21:59:28 · 1190 阅读 · 0 评论 -
【Android】Manifest中注册以内部类形式存在的Activity
本文介绍了在Mainfest中注册以内部类形式存在的Activity;原创 2016-08-05 11:23:01 · 3221 阅读 · 0 评论 -
【Android】自定义View —— 环形调色板
摘要: 通过布局代码和java代码结合的方式,来自定义视图,构建一个环形调色板;原创 2016-08-20 23:25:48 · 2443 阅读 · 0 评论 -
【Android】通用系列 —— 快速搭建设置界面
## 【关键词】`通用系列` `设置界面` `自定义View`## 【问题】· 减少重复性代码,快速搭建设置界面(通过简单的配置,就可以达到想要的布局);## 【效果图】## 【分析】- 设置界面大同小异,无非由标题,内容,图标等元素组成;- 既然每一个设置项都有Title,那么就用Title的strId来作为它的唯一标识(便于点击等处理);- 复杂的地方在分割线的处理方式...原创 2016-05-06 23:32:49 · 7140 阅读 · 5 评论 -
【Android】自定义View —— 设置中的选择皮肤项
【关键词】修改皮肤 自定义View【 问题】让改变皮肤变得简单;【效果图】【分析】「动态加载皮肤分析」 * 改变背景后将颜色值保存到SharedPreferences中; * 当切换或回退到另一个界面,在显示之前,即对应声明周期onStart中对背景进行变化(也可以在设置背景的时候通过广播的方式及时修改另一个界面的背景)「自定义控件分析」 * 每一次都只选择一个颜色,根据这个特性,我选择了原创 2016-05-12 18:18:52 · 1450 阅读 · 0 评论 -
【Android】自定义View —— 滑动的次数选择器
【关键词】自定义View 次数选择器 滑动【问题】实现一个可滑动的次数选择器;【效果图】「原型图」 「实现图」 【分析】对外提供简单的Change监听接口;如果处于两者之间就需要做判断:大于一半就自动跳转到下一个,小于一半,则回到上一个;通过Scroller及其startScroll()方法来实现回弹效果;要灵活控制刻度的最小值和最大值,因为可能随着需求的更改,这个值很容易发生改原创 2016-05-10 22:04:43 · 2565 阅读 · 0 评论 -
【Android】多点触控(判断触摸点是否在view上)
【关键词】Android 多点触控【问题】如何获取单个触摸点的位置,多个触摸点的位置又如何获取呢?如何根据触摸点的位置,确定触摸点是否在 view 上?【效果图】【分析】通过MotionEvent可以获取到触摸点个数;通过MotionEvent.getX(int pointerIndex)方法,可以获取到指定触摸点的X值;对于Y坐标同理;【解原创 2016-04-15 09:18:00 · 4284 阅读 · 0 评论 -
【Android】android:padding属性设置对ImageButton无效问题
【问题】ImageButton 无法通过设置 padding 按比例缩小问题,而 ImageView 却可以;【分析】看 ImageButton 的样式定义,其 scaleType 模式默认是 center; name="Widget.ImageButton"> name="android:focusable">true name="android:clicka原创 2015-11-22 11:43:39 · 3243 阅读 · 0 评论 -
【Android】边框旁的文字实现模糊效果
【问题】如何实现几行文字的最上面1行和最下面1行的文字为渐变模糊的效果;【效果图】【思路】简单来说:用一个渐变的透明的View来覆盖两边的文字区域;具体来说:(这里只考虑[区域2])最外面使用 RelativeLayout,里面的文字内容使用 ListView,上面和下面的模糊效果,使用背景为渐变的 View,(这个View没有任何内容,只是用来覆盖里面的文原创 2015-11-25 11:39:32 · 4700 阅读 · 0 评论 -
【Android】.9图的一个BUG?
【问题】本想通过使用 .9 图来取代被拉伸的png图,但是却遇到了问题:在 java 代码中通过控制 ImageView/ImageButton 的背景和前景时,出现了很意外的结果---前景消失了;【效果图】目录结构主要代码 得到了不想要的结果想要的最终效果是【分析】经过一番查找和了解,知道了原因:原创 2015-11-25 16:54:11 · 708 阅读 · 0 评论 -
【Android】LocalBroadcastManager 注册的广播对 PendingIntent 无效
【问题】LocalBroadcastManager 注册的广播,不可用于 PendingIntent.getBroadcast();(我打算打算通过广播和 AlarmManager 写一个定时器,却发现一直收不到广播;)【分析】LocalBroadcastManager 注册的广播在自己的进程中有效,而 AlarmManager 是系统级别的服务;A pending inten原创 2015-11-29 17:47:34 · 1641 阅读 · 0 评论 -
【Android】自定义View -- 钟表
【问题】通过自定义 View 来实现一个钟表;【效果图】【代码分析】重写 onDraw画外圆/*** 画外圆和中心实心圆* @param canvas*/private void drawCircle(Canvas canvas) { Paint paint = new Paint(); paint.setColor(mRin原创 2016-01-02 15:03:15 · 1875 阅读 · 0 评论 -
【Android】EditText获得焦点以及失去焦点
【关键词】EditText输入法获得焦点失去焦点【问题】默认是居中显示且非编辑状态,点击 EditText后文字居左且显示编辑状态;编辑状态时, 点击屏幕其他地方,使其失去焦点;进入界面时 EditText 获取焦点问题(默认状态下不获取焦点);非编辑状态无底线,编辑状态有底线加以区分;【效果图】【分析】见源码及注释;【解决方案】原创 2016-03-05 23:06:49 · 10331 阅读 · 3 评论 -
【Android】更改 TimePicker 字体颜色
【关键词】TimePicker 样式 字体颜色【问题】如果 TimePicker 的字体颜色和 TimePicker 的背景颜色都是深色或都是浅色的时候,显示效果就不好了;【效果图】[更改前][更改后]【分析】通过查看源码可以发现:TimePicker 的上的数字属于 EditText控件,可以通过指定 EditText 样式原创 2016-03-07 19:43:39 · 5454 阅读 · 0 评论 -
【Android】使用ProgressBar遇到的问题
【关键词】ProgressBar 自动取消【问题】给dialog设置了不可取消的属性,如果请求没能得到相应,进度条却无法关闭,程序相当于崩溃,这很影响用户体验;【解决办法】发出任务的时候,post一个定时的“失败的Runnable”;如果成功响应了,取消进度条,并且取消这个“失败的Runnable”;如果没能成功响应,则“失败的Runnable”得到原创 2016-02-24 06:14:52 · 2169 阅读 · 0 评论 -
【Android】监听蓝牙状态变化
【关键词】广播 LocalBroadcastManager 监听蓝牙状态【问题】广播的用法; 使用 LocalBroadcastManager 注册蓝牙广播,接收不到消息;【解决方案】在自定义广播的时候才使用 LocalBroadcastManager,并且需求是:广播只在本 APP 中有效; 不要尝试通过 LocalBroadcastManager 操作(注册,取消注册,发...原创 2016-02-24 06:48:00 · 17565 阅读 · 0 评论 -
【Android】自定义view的模版
【关键词】自定义View 模版【问题】写一个自定义View的模板【注意事项】自定义View的时候,会遇到 padding 无效的问题,需要做特殊处理;【代码】 public class CustomView extends View { private Paint mPaint; private FontMetricsInt mFontMetr原创 2016-02-24 07:01:40 · 487 阅读 · 0 评论 -
【Android】自动判断调试环境决定是否打印日志
【关键词】日志 调试环境【问题】打包后,忘记了设置LogUtil. DEBUG_MODE = false;,导致日志还可见,有没有什么办法自动判断运行环境来决定是否打印日志?【解决方案】eclipse特性:直接通过 eclipse 运行的时候,其 debug 属性为 true, 通过 eclipse 的导出功能打包时,其 debug 为 false;使用原创 2016-02-24 10:04:58 · 1244 阅读 · 0 评论 -
【Android】自定义View -- 条形图(柱状图)
【问题】实现可动态变化的条形图;【效果图】【用法】How to use1? android:id="@+id/dcv_7" android:layout_margin="16dp" android:padding="16dp" an原创 2016-02-22 21:21:40 · 4790 阅读 · 5 评论 -
【Android】进入应用和切换界面时闪屏的问题
【关键词】闪屏 切换界面【问题】从 launcher 中进入应用的时候,开始有一瞬间的空白,而不是直接展示背景;【分析】在绘制界面的时候,Android会先画背景,接着绘制其他区域(这个背景和 theme 有关);【解决方案】直接修改 theme 中的背景为 activity 的背景;在主题中,将android:windowBackground属性直接指原创 2016-02-26 19:37:31 · 9340 阅读 · 0 评论 -
【Android】启动时跳过欢迎界面的时机
【关键词】欢迎界面【问题】如果设置了欢迎界面,那么每次启动都会展示3s钟的欢迎界面,体验不太好;为了提高用户体验,如果程序刚启动过,只要没有进行清除后台的操作;那么就跳过欢迎界面;【效果图】【分析】启动程序后,Application 的onCreate()方法会调用一次,退出程序了之后,如果没有进行清除后台的操作,再次进入的时候不会再调用 onCreate()方原创 2016-02-26 19:38:00 · 4892 阅读 · 0 评论 -
【Android】ListView多选模式的使用
【关键词】ListView多选【问题】如何使用ListView的多选模式?【效果图】【分析】长按某一个 item 的时候,开启多选模式,并让当前选择的 item 处于选中状态;利用ListView 的 Choice属性,可以很方便使用多选模式或单项模式;【解决方案】使用方法长按 item 开启多选模式final ListView原创 2016-03-26 07:45:46 · 2210 阅读 · 2 评论 -
【Android】通用系列 —— 数据持久化(通用的SQLite封装)
关键字SQL SQLite 通用系列 数据存储摘要: 主要内容: 本文介绍了封装后的SQLite,以便快速开发; 只保留必要的定制,重复的代码封装到一个通用类中;说明LouSQLite.java文件为通用的代码,所有项目中不需要修改即可使用;MyCallBack.java文件是自定义的文件,关于项目的数据库配置都在这里进行,例如:数据库名称、数据库版本号、table语句等;原创 2016-07-13 22:04:23 · 5931 阅读 · 0 评论