android ui
文章平均质量分 59
ihrthk
这个作者很懒,什么都没留下…
展开
-
LoadedApk Crash的探索之路
LoadedApk Crash的探索之路Bug成因分析,问题定位Crash 现场起因是:在工作中遇到两个奔溃堆栈日志,如下图:初步分析这个Crash发生在第三方SDK中,是由SDK内部触发,不是通过直接调用产生的,并且难以复现。本来这个问题应该由SDK提供方来解决,但是用户不管这些,需要我们APP自己来解决。我在华为手机上也遇到这个问题了,没有页面发生奔溃,但是也没有从根本上避免...原创 2019-10-13 17:50:39 · 871 阅读 · 0 评论 -
Android Universal Image Loader
问题:在onCreate调用uil的displayImage,手动刷新时再次调用displayImage,会出现图片闪烁现象。问题分析:第二次displayImage,是从disk加载的,首先显示正在加载中的图片,然后在显示真正的图片,由于disk读取bitmap也需要一点时间,但是很快,所以会出现一闪而过的现象。根本原因:见uil源码,由这段源码可知memoryCacheKey的生成与image原创 2015-09-29 16:13:38 · 1813 阅读 · 0 评论 -
使用Fragment完成Tab选项卡-Android Fragment应用实战
先看一下QQ、新浪微博、支付宝钱包这三个非常有名的应用,都有一个底部导航栏,我们一般称之‘选项卡’。google官方会叫他们为fixed tab,不过国内好像很好这么叫的。其实,在anroid 4.x时代,google官方更希望应用的导航放在顶部,通过滑屏和点击标签来切换界面。但是随着ios的的跟风以及用户习惯的养成,这种设计风格的形成也就变成历史遗留问题。在这里我们不讨论哪一个风格好,哪原创 2013-11-24 01:43:23 · 57770 阅读 · 31 评论 -
android studio之代码重构
在我们不停地编写项目代码的时候,就会慢慢地发现代码有各种各样的问题,原创 2013-11-17 22:11:11 · 3713 阅读 · 0 评论 -
Service类
Service类简介: 一个Service是一个应用组件代表一个应用想要在不和用户交互的前提,去执行一个很长时间的操作。或者是提供功能给其他的应用去使用。每一个Service类必需有一个相符合的声明在它自己的包AndroidManifest.xml中。Service能够开始执行通过Context.startService()和Context.bindService(). 注翻译 2013-03-31 15:05:21 · 4079 阅读 · 0 评论 -
Android开发之对上下两个图层的操作
我们在玩“美女脱衣服”游戏中,看到的可以把美女身上的衣服脱掉,其实是运用了图层的技术。其根本还是两张图片,将上层图片来依据手的触摸使上层图层消失。可以理解为,上层图层是一个View,下层可以是View的一个背景。新建一个View类,myView这样去写他的构造函数:[java] view plaincopyprint?public myView(Context cont转载 2013-02-04 19:20:34 · 2151 阅读 · 0 评论 -
Android动态刷新listview中的数据
Android动态刷新listview中的数据 【IT168技术】之前一直困扰listview刷新后位置的问题,现在才明白,原来不能重新设置listview的adapter,而应该用notifyDataSetChanged()来刷新,这样位置就不会置顶。 下面做了一个测试的例子,点击最后一条记录,会增加一条新的记录, 代码如下: 1.TestAdap原创 2012-02-22 19:43:01 · 1000 阅读 · 0 评论 -
Android处理图片OOM的若干方法小结
前言众所周知,每个Android应用程序在运行时都有一定的内存限制,限制大小一般为16MB或24MB(视平台而定)。因此在开发应用时需要特别关注自身的内存使用量,而一般最耗内存量的资源,一般是图片、音频文件、视频文件等多媒体资源;由于Android系统对音频、视频等资源做了边解析便播放的处理,使用时并不会把整个文件加载到内存中,一般不会出现内存溢出(以下简称OOM)的错误,因此它们的内存消耗问转载 2012-08-15 12:24:50 · 911 阅读 · 0 评论 -
Android中notifyDataSetInvalidated()和notifyDataSetChanged()有什么区别
看下源码中对于这两个方法 public void notifyDataSetChanged () 该方法内部实现了在每个观察者上面调用onChanged事件。每当发现数据集有改变的情况,或者读取到数据的新状态时,就会调用此方法。 public void notifyDat原创 2012-01-27 22:48:00 · 1276 阅读 · 0 评论 -
下拉刷新及相关框架
下拉刷新及相关框架1.基于ViewGroup的PtrFrameLayout项目地址:https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh问题:PtrDefaultHandler.checkContentCanBePulledDown(frame, content, header)实现问题 2. 竞品: https://githu原创 2015-10-31 17:21:06 · 2874 阅读 · 0 评论 -
手把手教你使用gradle mulchannel插件,进行多渠道打包
手把手教你使用gradle mulchannel插件,进行多渠道打包开头声明: 这个多渠道打包插件,是使用命令行来运行的。不依赖任何IDE的,你的开发环境是Eclipse还有Android Studio都是可以的。不需要APK的源代码,仅仅需要一个打包好的APK就可以。(一般是正式版本的并且已经签名和混淆的APK文件)。速度大约是:Rate = 10apk/20sec(300apk/10min)原创 2016-01-04 19:29:18 · 2270 阅读 · 0 评论 -
Activity及Fragment之间的跳转
直接跳转基本使用方法public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(原创 2016-05-09 16:53:14 · 3841 阅读 · 0 评论 -
layout_scrollFlags属性不完全解析及总结
layout_scrollFlags属性不完全解析及总结0.前言分析源码com.android.support:design:27.1.1库的android.support.design.widget.AppBarLayout.java现在只是简单分析向下滑动的情况,当dy为负数。这里的min和max就是通过setTopAndBottomOffset方法对AppBarLayout的滑动范围进...原创 2019-08-03 13:08:03 · 2037 阅读 · 0 评论 -
小试牛刀RxJava2之首页检查
前言当我第一次听说RxJava是在2015年的11月,掐指一算距今过去了N年多了,现在RxJava2都发布好久了。现在公司项目的的业务需要,有一块逻辑涉及到子线程和主线程的来回切换。如果使用传统的Thread+Handler的写法,写出来的代码就跳来跳去,还有可能出现多次嵌套。很利于阅读理解里面的逻辑和后期的维护开发。早就听说RxJava的大名,通过响应式编程很好的处理异步问题。这次正好有这个机...原创 2019-07-13 17:52:18 · 277 阅读 · 0 评论 -
无侵入进行SDK的初始化
无侵入进行SDK的初始化0.前言我们在集成第三方SDK的时候大多都会在Application的onCreate方法里进行SDK的初始化或配置工作,这好像也没有什么问题,不过我们能不能能做的更好一点呢?就是希望用户在gradle文件里compile一下相应的库就可以直接使用,不需要额外的初始化和配置.这个问题,我在阅读Android Architecture Components原创 2017-07-01 09:29:31 · 5284 阅读 · 4 评论 -
深入焦点处理流程
深入焦点处理流程dispatchKeyEventfindFocusfocusSearchrequestFocus原创 2017-06-19 18:54:29 · 2377 阅读 · 0 评论 -
setButtonDrawable()的兼容问题
setButtonDrawable()的兼容问题原创 2017-03-11 23:19:26 · 3409 阅读 · 2 评论 -
android.app.Dialog(23)里window的那些事(坑)
不要使用theme去配置Dialog的gravity由于现在手机的尺寸比较大(相对于智能机开始的3.5in、4.0in),而Dialog默认都是显示在屏幕中心的位置,用户触摸起来多不便。所以大多数产品都会要求Dialog在底部显示。所以你可能这样写: <style name="BottomDialog" parent="@android:style/Theme.Dialog">原创 2017-02-03 10:09:02 · 6555 阅读 · 2 评论 -
Activity has leaked window that was originally added
Activity has leaked window that was originally added问题日志相信很多同学都遇到过这个问题window leak。日志如下E: android.view.WindowLeaked: Activity me.zhangls.rxjava2sampledemo.MainActivity has leaked window com.android.inte原创 2017-03-03 10:10:04 · 4411 阅读 · 0 评论 -
获取Application的Context
获取Application的Context原创 2016-07-06 16:20:47 · 4124 阅读 · 0 评论 -
仿美图秀秀的图片剪切
先贴上美图秀秀原作的效果图,右边是我仿的效果图。刚一眼打量过去,吸引我们的就是那四个大点。就从它开始吧,目前看来这个大点是一个图片,当点击下去的时候有加亮的效果,可能这又是一张图片。我们先不要考虑这些,先把它当做一个普通的Point来处理就好了。正常来讲的话,我们这里需要四个Point,但是考虑到后面我们对这些点进行复杂的运算和事件处理,只要申请两个Point就好了,以便降低问题的复杂度。原创 2012-07-29 03:56:20 · 6984 阅读 · 6 评论 -
Android 用Animation-list实现逐帧动画
第一步:先上图片素材,以下素材放到res/drawable目录下:图片素材:文件名称:icon1.pngicon1.pngicon1.pngicon1.pngicon1.pngicon1.png第转载 2012-08-15 12:41:42 · 935 阅读 · 0 评论 -
Android开发:在代码里面滚动当前屏幕
【IT168技术】最近在项目中遇到在代码中滚动当前屏幕的问题。屏幕上的元素 我都是在代码里面动态创建的,我的思路是: 将ScrollView 控件 执行 scrollTo 方法 滚动到适当的位置。至于哪里是合适的位置 我用的是 当前控件的getBottom() 方法 // 循环 界面 找到要查询的人员 LinearLayout ll_employee = (LinearLayout)转载 2012-07-12 03:28:27 · 747 阅读 · 0 评论 -
如何让Android UI使用更快更高效
【IT168技术】之前有谈过如何使用adapter更高效的,现在在谈谈其他的。 一、选择恰当的图像尺寸 视图背景图总是会填充整个视图区域,图像尺寸的不适合会导致图像的自动缩放,为了避免这种情况,我们可以先将图片进行缩放到视图的大小。 originalImage = Bitmap.createScaledBitmap( originalImage, //被缩放图 vie转载 2012-07-12 03:19:29 · 827 阅读 · 0 评论 -
Android中控件的继承 通用行为和属性
【IT168技术】本文主要给Android开发者讲解Android控件类的继承关系,通用行为以及属性,便于初级开发者学习和入门。 1、控件类的继承结构 android.view.View类(视图类)呈现了最基本的UI构造块。一个视图占据屏幕上的一个方形区域,并且负责绘制和事件处理。 Android中控件类的扩展结构如图3-1所示。▲图3-1 Android中控件类的扩展结转载 2012-07-12 03:09:56 · 927 阅读 · 1 评论 -
Android美工坊:Selector选择器的使用
【IT168技术】Android selector选择器可以让你切换自定义的背景风格,比如button、ListView、或者布局点击时候的背景切换等,都需要用到它 背景可以是自定义到颜色,或者图片资源 首先需要在你的res目录下创建drawable文件夹,然后在里面创建一个selector文件,如myselector.xml 注:不知为什么,selector里面有关focus的转载 2012-07-12 02:36:45 · 876 阅读 · 0 评论 -
LayoutAnimationController的使用方法
LayoutAnimationController的使用方法(与ListView结合使用为例) 什么是LayoutAnimationController 1 LayoutAnimationController用于为一个layout里面的控件,或者是一个ViewGroup里面的控件设置动画效果 2 每一个控件都有相同的动画效果 3 这些控件的动画效果在不同的时间显示出来 4 La转载 2012-05-25 22:13:45 · 1542 阅读 · 0 评论 -
Android UI中的style和theme以及AlertDialog
1.sytle:Android中的style就是用简单的配置来实现页面的外观和风格的方式。他是一个包含一个或者多个view控件属性的集合,可以当成一个整体应用到XML单个元素上。例如我们可以在res/values/styles.xml文件,键入代码: Xml代码 xml version="1.0" encoding="utf-8"?> resources>转载 2012-06-05 23:33:09 · 1118 阅读 · 0 评论 -
Android风格与主题(style and theme)
Android xml风格和主题文件的编写,是涉及到整个程序界面美观的因素之一。较好的应用风格和主题,可以实现美观而统一的界面,这就犹如Web开发中的CSS。Styles和Themes都是资源,存放在res/values 文件夹下。什么是Style,什么是Theme?Style:是一个包含一种或者多种格式化属性的集合,我们可以将其用为一个单位用在布局XML单个元素当中。比如,我转载 2012-06-05 23:17:09 · 668 阅读 · 0 评论 -
Applying Styles and Themes - 应用Style和Theme - Android官方文档中文翻译
原文链接:http://developer.android.com/guide/topics/ui/themes.html原文标题:Applying Styles and Themes原文版本:Android 2.2 r1 - 05 Aug 2010 8:29中文翻译:Jack Yu (yjmjack@gmail.com)仅供非盈利使用,转载请保留出处及译者信息应用Style和转载 2012-06-05 23:16:00 · 1187 阅读 · 1 评论 -
Android自定义View研究:View的大小
【IT168技术】Android开发View是一个基本的视图界面,但是如何做一个自定义的View,那View的大小是多少呢?这小节我就研究下View的大小。通过LogCat来研究View的大小是怎样确定的。好了,直接切入正题吧. 一、 在Activity中直接new HelloView 时View的大小。 View的大小获取可以用其中的两种方法获取: this.getHeight转载 2012-07-12 03:46:23 · 705 阅读 · 0 评论 -
Android开发之:Adapter的继承结构
【IT168技术】Adapter的作用。Adapter是AdapterView视图与数据之间的桥梁,Adapter提供对数据的访问,也负责为每一项数据产生一个对应的View。其作用如下图所示: Adapter的继承结构 各个类的作用 Adapter Adapter做为这个继承结构的最顶层的基接口,定义了Adapter要实现的基本方法: view sou转载 2012-07-12 03:47:28 · 759 阅读 · 0 评论 -
Android多线程:Looper和HandlerThread
【IT168技术】更新UI的时候主线程必须是目标线程,如何掌握这个主动性?是通过Looper和HandlerThread实现的。Android中每一个线程都跟着一个Looper,Looper可以帮助线程维护一个消息队列,Looper对象的执行需要初始化Looper.prepare()方法,使用Looper.loop()方法启动消息队列管理机制,退出时还要使用Looper.release()方法释放转载 2012-07-12 03:53:51 · 620 阅读 · 0 评论 -
Android中dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent的详解
先上这三个事件处理的说明文档:第一个是:ViewGroup的dispathTouchEvent(MotionEvent ev) : 传递Touch事件至target view(可以是自己)。第二个是:ViewGroup的onInterceptTouchEvent(MotionEvent ev):在ViewGroup中定义,用于拦截Touch事件的传递。第三个是:View的onT原创 2012-07-28 00:39:20 · 2252 阅读 · 1 评论 -
[Android] ImageView.ScaleType设置图解
原地址:http://blog.csdn.net/larryl2003/article/details/6919513ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。设置的方式包括:1. 在layout xml中定义android:scaleType="CENTER"2. 或在代码中调用imageVie转载 2012-07-26 17:09:27 · 1656 阅读 · 2 评论 -
在EditText中插入表情图片 (CharacterStyle&SpannableString)
原地址:http://gundumw100.iteye.com/blog/904107EditText通常用于显示文字,但有时候也需要在文字中夹杂一些图片,比如QQ中就可以使用表情图片,又比如需要的文字高亮显示等等,如何在android中也做到这样呢?记得android中有个android.text包,这里提供了对文本的强大的处理功能。 添加图片主要用SpannableString转载 2012-07-19 19:10:32 · 1216 阅读 · 0 评论 -
android之Fragment(官网资料翻译)
原文转自:http://blog.csdn.net/aomandeshangxiao/article/details/7671533Fragment要点Fragment作为Activity界面的一部分组成出现可以在一个Activity中同时出现多个Fragment,并且,一个Fragment亦可在多个Activity中使用。在Activity运行过程中,可以添加、移除或者替换F转载 2012-07-13 22:57:34 · 1643 阅读 · 0 评论 -
Android的配置界面PreferenceActivity
【IT168技术】我想大家对于android的系统配置界面应该不会陌生吧,即便陌生,那么下面的界面应该似曾相识吧,假若还是不认识,那么也没有关系,我们这一节主要就是介绍并讲解android 中系统配置界面的使用,相信大家看完本节后,一定能知道怎么使用这些东西了。 从上述界面中(其实是一个界面),我们可以看到有2组元素,第一组为:自动更新,更新频率。第二组为:是否登录,账号,密转载 2012-07-12 03:23:00 · 594 阅读 · 0 评论 -
一步步做Android增强型图片浏览器
【IT168技术】使用Android中的Intents和自带的Gallery图库,用户可以从移动设备中选取喜欢的照片。在本教程中,我们将学习如何使用Gallery图库进行用户图片的自定义选择,并且会进行一些操作界面上的改进,以方便用户对图片进行选择。本文的阅读对象为有一定Android基础知识的读者。 下面进一步讲解本文程序要实现的功能。首先会使用Android内置的Gallery图库功能,转载 2012-07-12 04:20:13 · 3617 阅读 · 0 评论 -
Android开发案例:多线程中的Handler
【IT168技术】在案例程序代码中用到了一个android.os.Handler类的对象—handler,android.os.Handler是Android中多个线程间消息传递和计划任务的“工具”类。Handler会在多个线程之间发送Message、执行Runnable。使用这些类可以对运行在不同线程中的多个任务进行排队。 Handler工具类在多线程中有两方面的应用: 发送消息,在转载 2012-07-12 03:59:16 · 850 阅读 · 0 评论