Android
文章平均质量分 59
peak1chen
这个作者很懒,什么都没留下…
展开
-
Android Studio多渠道多环境打包框架搭建
在我们做APP开发时,很多时候会切换不同的网络环境进行调试,有时候还会针对不同的网络环境打多个渠道包让测试人员针对不同开发环境测试,更多的时候是一台手机安装多个不同环境的APP进行测试。而Android Studio很好的理解了我们的诉求,只要通过配置,就能一次性的打包成不同开发环境的多个渠道apk,不仅更换了apk的applicationID,就连APP图标和名称都能更更换。这里使用 Andr...原创 2019-11-08 00:04:49 · 559 阅读 · 0 评论 -
AlertDialog底部弹出并横向铺满屏幕
当我们弹出一个AlertDialog时,AlertDialog提示框通常表现为悬浮在一个页面上,周围都是带黑色透明度的遮板。AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);View dialogView = LayoutInflater.from(MainActi...原创 2019-11-04 00:23:50 · 1692 阅读 · 1 评论 -
android 5.x—Palette图片取色调
在android的版本更新历程中,UI美观越发成为Google发展的重心。Material Design是谷歌推出的全新的设计语言规范,旨在为手机、平板、台式机和“其他平台”提供更为一致、更广泛的“外观和感觉“。在android 5.x中提出了Palette提取图片颜色的概念,这样便可以把色值付给ActionBar,其他View,让整个界面保持统一的色调。使用Palette需要引入库com.andr原创 2016-05-01 15:55:41 · 1198 阅读 · 0 评论 -
android 5.x—Tinting着色和Clipping裁剪
android 5.x中新添了2个属性可以操作图像,一个是Tinting,另一个是Clipping。1、tintingtinting有2个属性,分别是tint和tintMode。其中tint设置着的色调,tintMode设置着色的模式。只需在xml布局中定义tint和tingMode属性值。下面展示不同tintMode展示的效果,xml布局如下:<?xml version="1.0" encodin原创 2016-05-01 18:45:14 · 1173 阅读 · 0 评论 -
ScrollView中软键盘弹出依然遮住控件
在一个Activity页面中,常会有需要用户输入的文本控件EditText,EditText获取焦点后,弹出的软键盘往往会遮挡底部的其他控件,通常处理方法是:1、xml布局中,使用ScrollView包含用户控件; 2、Manifest文件相应的Activity节点下添加软键盘属性android:windowSoftInputMode=”stateHidden|adjustResize”经过这两步原创 2016-04-20 16:38:58 · 9023 阅读 · 0 评论 -
android 5.x—RecyclerView使用介绍
RecyclerView是androi 5.x提供的新组件,是ListView 的升级版,比ListView更灵活,更先进。具体表现这几个方面:把ViewHolder的实现封装起来,规范了ViewHolder,把item的view写入ViewHolder中,通过复用ViewHolder来实现view的复用。RecyclerView.Adapter中把view的回收和内容改变等操作分开解耦了,比传原创 2016-05-05 18:32:08 · 758 阅读 · 0 评论 -
android 5.x—过渡动画Transition
android 5.x 提供了3中过渡动画:进入:一个进入的过渡(动画)决定activity中的所有的视图怎么进入屏幕退出:一个退出的过渡(动画)决定一个activity中的所有视图怎么退出屏幕。共享元素:一个共享元素过渡(动画)决定两个activities之间的过渡,怎么共享(它们)的视图有以下进入和退出的过渡动画:explode(分解)—— 进入/退出从屏幕中间移动视图;slide(原创 2016-05-06 15:57:09 · 3217 阅读 · 0 评论 -
Android Studio引入ButterKnife 8.0.1版本
ButterKnife,相信好多人都有用过。 Android studio导入ButterKnife也很简单。1、右键项目->open module settings->左侧栏点app->选择Dependencies选项卡->最右边的[+]->Library Dependency->在弹出的Choose Library Dependency中搜索关键词butterknife,便可以搜索到Butte原创 2016-05-08 09:03:47 · 4227 阅读 · 2 评论 -
okhttp3使用
一、引入包在项目module下的build.gradle添加okhttp3依赖compile 'com.squareup.okhttp3:okhttp:3.3.1'二、基本使用1、okhttp3 Get 方法1.1 、okhttp3 同步 Get方法/** * 同步Get方法 */private void okHttp_synchronousGet() { new Thread(new原创 2016-06-03 11:02:12 · 50121 阅读 · 2 评论 -
retrofit 2.0 简单使用
Retrofit与okhttp都是出于Square公司,Retrofit对okhttp做了一层包装,把网络请求都交给了okhttp(可以参考okhttp3使用),因此只需要简单的配置,就能用Retrofit进行网络请求。一、引入retrofit 2.0需要在项目下的build.gradle添加retrofit 2.0.2的引用// retrofit 库compile 'com.squareup.r原创 2016-06-09 22:19:25 · 2743 阅读 · 0 评论 -
RecycleView 分割线设置及监听滚动状态
一、RecycleView 分割线ListView中的分割线可以通过属性divider和dividerHeight分别设置颜色值/图片及分割线高度。而RecycleView并没有提供这两个属性设置分割线。 作为ListView的升级版列表控件,当然也是支持分割线的设置的。RecycleView分割线需要通过addItemDecoration(ItemDecoration decor)设置;Item原创 2016-06-23 14:39:02 · 1332 阅读 · 0 评论 -
android中xml tools属性详解
编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识、前端、后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过!第一部分安卓开发中,在写布局代码的时候,ide可以看到布局的预览效果。但是有些效果则必须在运行之后才能看见,比如这种情况:TextView在xml中没有设置任何字符,而是在activity中设置了text。因此为转载 2016-05-01 10:01:09 · 2639 阅读 · 0 评论 -
android 5.x—Elevation阴影
以往的android view里,只有X和Y两个值,而在5.x之后,Google为其增加了一个新的属性——Z值。Z值使得UI界面更有立体感,view与view直接有了明显的层次感。Z值由两部分组成,elevation和translationZ组成,elevation是静态成员,translationZ可以在代码中设置实现动画效果。因此Z=elevation+translationZ。elevatio原创 2016-04-30 18:55:02 · 2789 阅读 · 0 评论 -
具有弹性的ListView
android默认的ListView滚动到顶端或是底端的时候,Google为其添加了半圆形的蓝色阴影效果。而在ios系统中,默认的列表都是具有的弹性的,列表滚动到底端或者顶端后会继续往下或者往上滑动一段距离。其实在android的ListView源码中,提供了一个控制滑动到边缘的处理方法:protected boolean overScrollBy(int deltaX,int deltaY,int原创 2016-04-16 06:36:21 · 675 阅读 · 0 评论 -
Android设定字体大小,不随系统变化
在app开发中,我们经常会限定字体大小,不跟随系统设定的字号变化。所以在编写页面时,会经常使用dp,而不是sp;<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match原创 2016-01-21 23:32:15 · 16823 阅读 · 0 评论 -
搜索框中搜索符号居中
在Android开发时,常常会添加搜索框,有时更会高仿ios搜索控件,将搜索符号显示在搜索框的中间,当点击搜索框时,又将搜索按钮移到左侧。如下图演示(生成gif被压缩了) 先给搜索框添加布局<RelativeLayout android:id="@+id/relative_search" android:layout_width="match_parent"原创 2016-01-25 10:11:06 · 4010 阅读 · 0 评论 -
json之FastJson解析
fastjson的使用一、JSON(JavaScript OjectNotation)是一种轻量级的数据交换方式。易于人的阅读和编写。也正是由于Json格式数据的简单和易用性,越来越多的开发者开始使用Json,以此同时,很多公司也封装了一套自己的Json框架,用来实现Json格式数据的转换,比如Google的Gson,阿里巴巴的FastJson,IBM的Json4J等。这里只介绍阿里巴巴的Fa原创 2016-01-10 23:57:42 · 863 阅读 · 0 评论 -
Android开发中使用MVP模式
一、为什么使用MVP模式 在Android开发中,Activity并不是标准的MVC模式中的controller,它的首要职责是加载应用布局,处理用户操作并做出响应。随着界面及逻辑的复杂度不断提升,Activity的职责便不断增加,导致整个类变得庞大臃肿。因此我们需要将复杂的逻辑处理放到另一个类Presenter中,而Activity只负责处理用户操作并响应。二、什么是MVP模式 MVP(模式-原创 2016-01-11 22:15:10 · 534 阅读 · 0 评论 -
Android技巧之drawablePadding设置
1.问题 我想很多小伙伴都和我一样应该很喜欢TextView中drawableLeft、drawableTop、drawableRight、drawableBottom这几个属性,因为我们可以直接用它来画出来一个图文排列的标签或者按钮,这样就对于用两个控件组成的相对复杂的布局来说容易的多,这在移动UI开发中很常用,但是这样经常会有个问题困扰着我,因为有时候我们想把图片和文字对应居中,这样就会出现关转载 2016-01-31 10:28:33 · 13486 阅读 · 0 评论 -
Android画布canvas rotate,translate的理解
在开发过程中,经常会自定义view,有时候还涉及到自己画图,为了更好的产品体验,还会通过canvas.rotate旋转画布,绘制更复杂的图形或垂直文本。绘制有效的几何图形,当然离不开坐标系的选取。Android也定义了自己的坐标系,自然情况下,手机屏幕的左上角是坐标系的原点,向右是x的正轴,向下则为y的正轴。如下图是手机屏幕坐标系的定义:然而,屏幕的可见区域包含了多个view,其实每个view也是有原创 2016-03-02 00:36:11 · 2352 阅读 · 0 评论 -
webview.loadData加载出现乱码问题
昨天写了个demo,主要是从网上请求了些json格式的文章数据,然后取出有用的信息值拼凑成字符串(多半是文章文本和关联的图片,图片均转化格式),然后希望用webview加载这些数据展示文章信息,最后发现手机上显示出的图片完全没问题,可是文本文字都是一堆乱码。 在网上找了些资料,设置了webview默认编码为utf-8mWebView.getSettings().setDefaultTextEnco原创 2016-01-14 12:39:15 · 526 阅读 · 0 评论 -
仿专题订阅功能
在Android开发中,有些时候会涉及到专题订阅,订阅专题无非是添加/移除专题。而我们的产品的订阅功能稍微有点不同,专题数默认7个,只能替换专题,不能够取消/新添专题,这里给出展示如下图:实现过程如下: 1、自定义专题订阅容器,涉及到标签的移动,为了更灵活的定义标签位置,继承了相对布局RelativeLayout,将自定义布局命名为DraggingViewGroup;2、定义专题的宽度,专题的高度原创 2016-03-05 22:01:33 · 627 阅读 · 0 评论 -
Android虚拟键遮挡控件
随着手机行业的快速发展,越来越多的手机产商在追求极致的过程中,逐渐用虚拟按键代替了物理按键。 在带有虚拟键的机子测试时,就会发现有些UI控件完全被底部的虚拟按键挡住了(虽然可以隐藏虚拟按键,可还是影响用户体验),效果图如下: 如图,界面底部弹出了popupwindow,而 popupwindow上面的button控件被虚拟键挡着,点不到button; 为了不让虚拟键挡着底部的button控件,原创 2016-03-10 16:11:55 · 3377 阅读 · 1 评论 -
Fragment监听返回键
Activity可以通过重写onKeyDown(int keyCode, KeyEvent event),很容易的监听物理返回键事件,而Fragment并不能重写物理键监听事件。在一个Activity多个Fragment页面的应用中,很多时候有必要的监听每个Fragment返回事件,并对每个Fragment做特殊的数据处理。如果将每个Fragment的返回事件都在FragmentActivity中原创 2016-05-24 08:25:13 · 4544 阅读 · 0 评论 -
Android循环添加多个控件
在Android开发中,我们有时候会在一个容器(例如:LinearLayout)中添加多个子控件,由于对控件的操作必须在主线程中,因此过多的占用主线程,势必会使程序终止退出。在下面的例子中,我们在一个LinearLayout容器中循环添加500个子控件(TextView),private final int CONTROLS_COUNT = 500;private void initWidget(原创 2016-01-17 19:08:20 · 4194 阅读 · 0 评论