AndroidUI设计
文章平均质量分 98
Android世界的小学生
代码就像人生,越丰满,充实,井井有条,越存在着优化,提升的地方。
展开
-
Android 动态多语言实现方案
语言的准确表带,对于多语言用户来说,是对该国家文化的尊重,和对产品态度的严谨。而在推荐产品的时候如果对客户说,我们的产品支持动态的更新系统语言,在多语言销售时也是一个吸引客户的亮点。说起Android的多语言相信大多数的场景下我们的解决方案大致流程是:将全局String类型的资源抽离到string.xml文件中 然后根据这个基础的string.xml文件进行扩展在key值不变的情况下,根...原创 2021-01-04 14:12:50 · 1692 阅读 · 0 评论 -
Only fullscreen opaque activities can request orientation 最好的解析
好好的应用按到华为8.0上就崩溃了,感觉非常无语,解决的时候,查了一下资料发现虽然很多人都遇见过,但是总结的并不全面,有一些还是有问题的。所以特意将这个崩溃,从源码级别给大家分析一下,让大家知其然,知其所以然。先上解决方案,后面是源码级的触发原理。解决方案:适配版本不大于26(显然不合适)不设置windowIsTranslucentwindowSwipeToDismisswindowIsFloating为 true首先我们先看下:Only fullscreen opaque act原创 2020-10-20 14:14:43 · 1601 阅读 · 1 评论 -
Android 屏幕旋转 全解析
屏幕旋转一般的解决方案关于屏幕旋转这里,之前一直没太注意,因为根据设备会有指定的屏幕旋转策略如:1.开发手机应用时一直使用强制竖屏布局2.开发平板设备一直使用横屏布局3.开发系统应用,一般给两套即横竖各一套其实这三种模式一般来说,可以为我们规避大量的问题!但是总有一些特殊情况,让我们摸不清头脑。所以这次我就从头到尾的做一次实验。将屏幕旋转这里的知识点和要点归纳出来。事前准备适配框架使用:implementation 'me.jessyan:autosize:1.2.1'<meta-原创 2020-10-20 13:52:36 · 4772 阅读 · 0 评论 -
EMedia 让相册、拍照、视频、预览更方便
简介EMedia 让相册、拍照、视频.、预览更方便EMedia是一个基于Android系统的媒体文件选择帮助类。其中主要的功能有相册:支持单选、多选、按文件夹分类、系统预览、自定义预览、是否返回原图等操作。拍照:使用系统相机,拍照后按照指定路径返回照片。录像:支持系统录像,和自定义相机录像,自定义相机支持分辨率,闪光灯最大,最小录制时间等常见功能。选取文件:快速调用系统图片选择器。返回解析:根据请求的内容,封装返回解析工具,返回可用的数据结果。自动获取Provider权限。一、调用相原创 2020-05-27 15:49:16 · 447 阅读 · 0 评论 -
EIMUI 一个简单,美观,易维护,易拓展的IMUI解决方案
致谢从17年开始接触IM即时通讯项目开始,陆续的看了几家的即时通讯方案,作为移动端这里面包括有融云、QQ、极光、环信、网易等等。真正看了UI源码的有:QQ,代码的内在精神是在的,但是不能直接用,需要大量的修改封装。融云,代码封装层次多,阅读难度较大,采取动态注入View的方式进行多类型消息支持。极光,代码简单好读,作为参考有一定价值,多类型Holder写的有点啰嗦。发出来的Aurora 渲染图很好看,不知道是不是我是安卓版的原因,安装上之后感觉有点失望。这里对开源的前辈致敬,你们的项目给了我很原创 2020-05-27 13:13:51 · 1120 阅读 · 0 评论 -
Android 抽奖 转盘 动画 实现原理详解
Android动画之旅有一段时间没有写新的内容了。我之前想的是,边学习边开发一些有用的小Demo但是一写起来就根本停不下来了。先给大家展示一个成果,后续我会将每个项目的原码和原理分析发布出来。虽然我知道看的人可能不多,但是写东西总结对自己本身也是一种检验和复习。还是希望我的博客人可以越来越多。 先展示一下成果。本来是想写五个但是写着写着就写成了8个。 那么今天写一个最简单的大转盘开始,逐渐深原创 2016-11-08 10:47:52 · 4072 阅读 · 2 评论 -
Android中Rect和RectF的区别与联系
1.联系 都是用于表示坐标系中的一块矩形区域,并可以对其做一些简单操作。这块矩形区域,需要左上和右下两个坐标点表示(所以需要的是四个参数,即两个坐标点,四个坐标参数)。区别: (1).精度不一样。Rect是使用int类型作为数值,RectF是使用float类型作为数值。 (2).两个类型提供的方法也不是完全一致。在网上看了几帖子,发现都没有把这两个类的作用说的很清楚。 第一:对于这两原创 2016-10-27 13:59:56 · 1121 阅读 · 0 评论 -
2016 Android 动画 详解 干货(二)
昨天我使用所学的新的技术完成了一个 转盘抽奖的小游戏。这些游戏的设计和实现以及原码会逐步的给大家放出来。今天就来看些高级的用法和使用技巧。 ValueAnimator 属性动画,其生成的并不是一个特定的效果,而是一些列可加速减速匀速的数据,以此使我们的动画看起来更佳平滑美观。他就不在是简简单单的移动了。正因为属性动画产生的是数据这个特性,所以对于属性动画来说,他所适应的对象不再仅仅是View了任何原创 2016-10-12 13:57:28 · 411 阅读 · 0 评论 -
2016 Android 动画 详解 干货(一)
本系列文章会借鉴一些前辈的经典帖子。这里对这些巨人表示感谢。 在最后我会放出一些根据这些动画实现的小游戏,以及原码,不足的地方欢迎切磋。Android的动画一开始分为两种方式实现 第一种就是:逐帧动画 实现原理很简单就是将一个完整的动画拆分成一张张单独的图片,然后连贯起来进行播放。类似于动画片的工作原来。 第二种就是:补间动画 则是可以对View进行一系列的动画操作,包括淡入淡出,缩放,平移,原创 2016-10-11 13:40:53 · 603 阅读 · 0 评论 -
2016 Android 动画之旅第三天
接连四天每天上午学习技术点,下午开始实战演练,然后每天都有所成就这种成就感,真的很棒,希望自己能坚持下去。在写这篇帖子之前,根据之前的知识我已经完成了。两个动画的小游戏,当然都和公司的项目有关,就是电商做活动的时候,大转盘抽奖,和淘宝比较常见的 9张卡然后翻一张进行抽奖。当然在这个过程中遇到了很多坑,在今天完成这个帖子之后,我会把我做的项目发出来。并且带上特效分析和算法分析。对之前的东西进行下总结。原创 2016-10-13 22:26:26 · 541 阅读 · 0 评论 -
Android RecyclerView 使用完全解析
说到ListView和GridView大家肯定不陌生,相信也有很多人已经使用到了出神入化的地步,因为这两个控件实在是太常用了,可以说任何项目都会有ListView的身影,而且使用方便简单代码量少!但是习惯了往往就不喜欢使用新鲜事物,就像我自己使用了几次RecyclerView之后就还是使用ListView了,但是说句真心话,现在ListView已经越来越难完成页面上的需求了。所以今天特意写一片帖子来原创 2016-11-10 13:37:13 · 696 阅读 · 0 评论 -
2016 View 使用TextPaint来绘制文字
TextPaint是paint的子类,用它可以很方便的进行文字的绘制,一般情况下遇到绘制文字的需求时,我们一般用TextPaint所提供的方法。开始学习如何绘制文字之前,我们必须要先了解下android中文字是怎么绘制到屏幕上的,文字的格式又是怎么样的。一、FontMetrics(字体度量) 1.1理论知识 它是一个Paint的内部类,作用是“字体测量”。它里面呢就定义了top,ascent,d原创 2016-10-20 11:24:56 · 1979 阅读 · 0 评论 -
Android 常见的高级控件
为什么要写这个那,因为在程序开发过程中,经常会使用到一些,基本控件无法满足的页面,那么这个时候就需要我们自己自定义View了,这可不是个轻松的活,但是有一些控件是Android为我们设计好的,那么我们给他换个皮肤,直接拿过来用,不是更省心省力吗。自动完成文本框 在Android开发中提供了两种智能输入框——AutoCompleteTextView和MultiAutoCompleteTextView原创 2016-10-20 13:32:32 · 745 阅读 · 0 评论 -
Android 自定义底部弹窗
今天看了一个简单而实用的Demo所以特地到这里写个帖子,进行一些总结。第一这个技术点算是很常用的,当然我也有几种方法进行实现,但是自认没有这个简单,复用性也没有这个高。那么进入正题,就像题目写的没错就是自定义底部弹窗。我那之前是使用PopWindow这个算是正统的使用方法,当然你如果不太熟悉PopWindow,那么你还可以用一个比较讨巧的方法,就是定义一个背景为半透明黑色的Activity,就可以了原创 2016-11-14 16:20:41 · 703 阅读 · 0 评论 -
Android 新控件学习总结
一、CoordinatorLayout CoordinatorLayout 作为一个“super-powered FrameLayout”,主要有以下两个作用: 作为顶层布局; 作为协调子 View 之间交互的容器。 当我们使用CoordinatiorLayout的时候我们需要在我们项目的gradle加入依赖compile 'com.android.support:design:25.0.原创 2017-06-19 17:28:20 · 352 阅读 · 0 评论 -
2017 Android Toolbar 教程详解
这几天再看Android的新控件,打算彻底的研究分析一下各个控件的特性,已经设计初衷,毕竟UI是为了用户交互,而通用UI更是为了应付更多的使用场景的。那么就先从这个最简单和实用的Toolbar开始。如果使用的话那么一个APP90%的页面可能是需要顶部导航栏的,那么如果不自定义而使用官方推荐的控件,那么就是Toolbar了。但是不得不说在使用toolbar之前我还是使用自己写的一套顶部导航,毕竟自己写原创 2017-06-20 16:04:53 · 1692 阅读 · 0 评论 -
从FragmentPagerAdapter看Fragment 生命周期
之前写过一个关于Fragment使用的帖子,但是并没有对生命周期做太详细的了解。因为那个时候主要是首页上的四个页签,然后用FrameLayout进行管理,使用那个显示哪个就可以了,然后在onCreateView里面初始化并返回我们要使用的View即可。但是最近看到了一种写法就是一个Activity中放置多个数据显示格式相同,按内容划分的Fragment,而且确实按照正常无优化的方法,随着浏览时间的加原创 2017-08-02 16:10:23 · 1805 阅读 · 0 评论 -
Android Handler 从原理到面试题
1.Handler是什么Handler是Android给我们提供用来更新UI的一套机制,也是一套消息处理机制,我们可以发送消息,也可以通过它处理消息。 如Activity的整个生命周期是由 Activity Message Service 来通知处理的。2.为什么要使用HandlerAndroid在设计的时候,就封装了一套消息创建、传递、处理机制,如果不遵循这样的机制就没有办法更...原创 2018-06-21 15:32:16 · 330 阅读 · 0 评论 -
Android ListView 详解 2016 干货
首先说下为什么写这篇文章,最近接手了一个离职同事的项目,点开之后看见它写的ListView真的是跪了,好坏不说,如果单单只是为了实现而”不择手段”,那么对自己的职业生涯又有什么好处?除了项目被重构,我估计如果真的有一天被技术或者客户反馈了你的职位也要被重构了。所以希望写这篇文章帮助大家,第一个将基本功扎实起来,第二个应付各种各样的ListView都不发怵,都有一套可一应对的方案。ListView作为原创 2016-08-25 10:47:19 · 767 阅读 · 0 评论 -
Android Fragment 详解 2016 干货
最近看了很多动画和一些效果很好的自定义控件,发现了一件事,就是Android的View层设计思想和古老的JavaSwing是如此的相似。这是在原来的基础上加入了一些输入移动端的生命周期,使其在使用和性能上更好。但是对核心的理解还是可以借鉴一些的。 如果说Activity就是JavaSwing的JFrame那么Fragment 就是在JPanel 一个是容器顶层控件,一个是显示在容器上的中间层控件原创 2016-07-27 16:34:49 · 7217 阅读 · 1 评论 -
Android Canvas(画布)详解
Android 中使用的图像处理引擎,2D部分是androidSDK内部自己提供,3D部分是用Open GL ES 1.0。而我们最常用的就是在一个View上画一些图片,形状或者自定义的文本内容,这里我们都是使用Canvas来实现的!你可以获取View中的Canvas 对象,在onDraw(Canvas canvas) 提供了canvas 对象. 在进行改变的时候调用,View.invalidat原创 2016-07-02 21:30:27 · 1397 阅读 · 0 评论 -
Android之自定义控件
很久之前就想写,今天无论如何都要写完。 之前我感觉Android的控件很丰富,但是正真使用的时候发现,现实中根据设计风格对UI的设计需求更丰富,但是万变不离其宗的是,那些界面风格多样,都是由简单的功能控件组合而成的在自己设计图片设置为背景,那么任何要求的控件都可以根据自己定义的方法进行设计,从而满足各种设计需求。 废话不多说了。 开始自定义控件的设计 首先是要有自己的自定义控件的抽象,即我需原创 2015-04-24 16:08:53 · 324 阅读 · 0 评论 -
Android 自定义控件 自定义属性 总结
自定义控件 好处一:私人订制,给你不一样的感受,专门为您设计,满足你的每一个需要。 好处二:反复利用,改个图片,风格,新的控件又诞生了,大大的提高了开发效率。 好处三:控件积累,当你的控件积累到一定量的时候,你的设计UI作出的效果绝对是别人不能比拟的!自定义控件,可以说是一个技术难点,而且用好了非常实际有用,可以大大的提高开发效率。并且易于维护!把自定义控件做好,主要还是体现JAVA编程思想中原创 2015-05-12 15:10:52 · 424 阅读 · 0 评论 -
Android EQ详解
EQ就是频率均衡器,适当的调整和控制可以设置重低音,古典,摇滚之类的感觉 主要的类就是 android.media.audiofx.Equalizer //many application can control equalizer ,so we need priotiry //首先初始化这个类,需要两个参数,第一个是优先级,默认是0.所谓优先级就是说当有多个应用同时去控制EQ的时候,就靠优原创 2015-05-04 15:45:58 · 1066 阅读 · 0 评论 -
The distinction of ProgressBar and SeekBar
当一个应用程序在后台执行时,前台界面不会产生变化,但因为 Android 各机型配置大不相同,有时执行程序的过程中用户不知道发生了什么事,但界面却发生了变化。这时需要与用户交互的进度条用来提示用户后台执行程序的进度,这种做法是符合人性化的,进度条充分的符合上面的需求。进度条的详解如下:1、进度条风格 2、进度条主要属性方法 3、模拟程序运行,使用进度条 1、进度条分类 长形进度条 (pr原创 2015-05-06 14:07:09 · 351 阅读 · 0 评论 -
Fragment&FragmentActivity
1.使用Fragment首先要让Activity继承FragmentActivity FragmentActivity包含了Fragment运作的FragmentManager接口和实 现类FragmentManagerImpl,其掌管了所有Fragment的显示和隐藏。 2.首先Fragment 就可以把它当作一个view , 只不过这个view 与 activity一样有了生翻译 2016-04-06 14:33:25 · 416 阅读 · 0 评论 -
Android进程间通信
1.使用Handler传递消息 handler 大家可以把它想象成主线程(UI线程)的一个子线程,它可以给主线程(UI线程)发送数据从而更新主线程(UI线程)的UI与逻辑,handler 是一个子线程所以它的耗时操作不会阻塞主线程,大家都知道在android的开发中如果代码中某个地方阻塞主线程超过5秒的话系统会提示ANR (系统提示强制关闭)所以在耗时操作上我们可以考虑开启一个子线程避免ANR。原创 2016-04-07 14:20:38 · 553 阅读 · 0 评论 -
Android基础空间spinner
1.Spinner提供了从一个数据集合中快速选择一项值的办法。默认情况下Spinner显示的是当前选择的值,点击Spinner会弹出一个包含所有可选值的dropdown菜单,从该菜单中可以为Spinner选择一个新值。 2.Spinner的四种典型使用方法 Spinner的基本用法 设置Spinner的Adapter (arrayadapter 和自定义BaseAdapter) Spinn原创 2016-04-08 11:01:33 · 356 阅读 · 0 评论 -
android图形处理之 Matrix方法
Matrix的对图像的处理可分为四类基本变换:Translate 平移变换Rotate 旋转变换Scale 缩放变换Skew 错切变换原创 2016-04-11 08:45:16 · 341 阅读 · 0 评论 -
Android学习之位图BitMap
BitMap代表一张位图,扩展名可以是.bmp或者.dib。位图是Windows标准格式图形文件,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2、4、8、16、24和32位色彩。例如,一幅1024×768分辨率的32位真彩图片,其所占存储字节数为:1024×768×32/8=3072KB 位图文件图像效果好,但是非压缩格式的,需要占用较大存储空间,不利于在网络上传送。jpg格式则原创 2016-04-18 11:01:04 · 444 阅读 · 0 评论 -
Android 之 Drawable
对于任何软件来说,美观的界面都是用户体验的重要组成部分,它能提高整个软件的品质,给用户一个好的印象。界面的美观一般离不开各种图形图像资源。本节就来讲一讲Android开发中图形图像处理的一个最重要的类Drawable。Drawable就是一个可以画的对象的抽象。 最简单的使用Drawable资源的方法是,把图片放入Android工程的res\drawable目录下,编程环境会自动在R类里为此原创 2016-04-18 13:21:11 · 301 阅读 · 0 评论 -
Android中的RecyclerView: 基础知识
1.RecyclerView是什么? RecyclerView是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式。它被作为ListView和GridView控件的继承者,在最新的support-V7版本中提供支持。 2.在开发RecyclerView时充分考虑了扩展性,因此用它可以创建想到的任何种类的的布局。但在使用上也稍微有些不便。这就是Android——要完成一件事情总不是那么原创 2016-04-23 13:53:38 · 294 阅读 · 0 评论 -
自定义控件-自定义动画的下来刷新
从实际角度来说,引入自定义控件是在开发中非常常使用的技术。 原因有两个 1.一个公司有苹果安卓双端产品,要求产品界面风格同意,那么有的时候在苹果上很容易实现的功能在安卓上是没有的,那么就要自己开发一个控件和苹果统一。安卓大多数的设计确实不如苹果美观。 2.开发中将某些控件组合封装成一个控件,例如把开始时间和结束时间组合的日期选择,就非常的使用。载入汽车导航的右侧,始终有一个指南针动态的调整角度原创 2016-05-19 15:01:01 · 448 阅读 · 0 评论 -
ListView中点选RadioButton的解决方案
public class RadioAdapter extends BaseAdapter{ private LayoutInflater inflater; private ArrayList list; private viewHolder holder; //最重要的标记 private int index = -1; private Cont原创 2016-06-28 21:12:23 · 335 阅读 · 0 评论 -
Android 支付宝 微信 银联 支付
补充技术:现在很多支付平台,那么就需要有一个统一的平台进行支付的封装,那就是PING++有兴趣的朋友可以自己看一下。一、支付难不难,不难,都是属于第三方的东西,难度不大。 二、支付是安全的,因为都是大公司的铲平,有自己的安全策略。 三、做一个支付需要多久: 支付宝:大概5分钟 银联支付:大概5分钟 微信支付:大概10分钟四、支付流程 1.选择商品 2.选择支付方式 3.处理支付结果原创 2016-07-10 14:54:53 · 786 阅读 · 0 评论 -
Android首字母索引排序通讯录
功能介绍:这个软件的功能和微信朋友圈的通讯录功能非常相似。就是将后台请求来的数据根据首字母进行分类,然后右侧有索引栏,根据索引栏可以快速的进行搜索。功能使用场景:通讯录 选择地址(根据地址将数据进行分类) 总之一切使用数据分类的地方都可以使用此功能。在应用开发中属于必不可少的控件。所以透彻的研究它和使用它还是很有必要的。第一个主要功能 右侧的索引Bar SideBarpublic class Sid原创 2016-07-24 21:30:02 · 1159 阅读 · 0 评论 -
Android 滑动开关(ToggleButton) 解析
自定义View的叙述 android在绘制View时,其实就是蒙上眼睛在画板(Canvas)上画画. 他并知道应该把View画多大,画在那,怎么画。所以我们必须实现View的三个重要方法,以告诉他这些信息。 那么就是onMeasure(画多大) onLayout(画在那) onDraw(怎么画) 如果早前知道java swing 中在panel中画画的,这个原理是一样的!如果进行画制那么原创 2016-07-02 15:51:14 · 437 阅读 · 0 评论 -
Button样式设计 圆角、实心、渐变、描边
Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结:先看下面的代码:转载 2015-04-20 10:45:03 · 1116 阅读 · 1 评论