- 博客(29)
- 资源 (16)
- 收藏
- 关注
原创 Android Studio多渠道多环境打包框架搭建
在我们做APP开发时,很多时候会切换不同的网络环境进行调试,有时候还会针对不同的网络环境打多个渠道包让测试人员针对不同开发环境测试,更多的时候是一台手机安装多个不同环境的APP进行测试。而Android Studio很好的理解了我们的诉求,只要通过配置,就能一次性的打包成不同开发环境的多个渠道apk,不仅更换了apk的applicationID,就连APP图标和名称都能更更换。这里使用 Andr...
2019-11-08 00:04:49 500
原创 AlertDialog底部弹出并横向铺满屏幕
当我们弹出一个AlertDialog时,AlertDialog提示框通常表现为悬浮在一个页面上,周围都是带黑色透明度的遮板。AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);View dialogView = LayoutInflater.from(MainActi...
2019-11-04 00:23:50 1592 1
原创 RecycleView 分割线设置及监听滚动状态
一、RecycleView 分割线ListView中的分割线可以通过属性divider和dividerHeight分别设置颜色值/图片及分割线高度。而RecycleView并没有提供这两个属性设置分割线。 作为ListView的升级版列表控件,当然也是支持分割线的设置的。RecycleView分割线需要通过addItemDecoration(ItemDecoration decor)设置;Item
2016-06-23 14:39:02 1304
原创 Android 压力测试Monkey
monkey主要应用在压力和可靠性测试上,运行该命令可以随机地向目标程序发送各种模拟键盘事件流,并且可以自己定义发送的次数,以此观察被测应用程序的稳定性和可靠性,使用比较简单。#Monkey的特征1、 测试的对象仅为应用程序包,有一定的局限性。 2、 Monky测试使用的事件流数据流是随机的,不能进行自定义。 3、 可对测试的对象,事件数量,类型,频率等进行设置。Monkey基本使用语法是:首先
2016-06-22 19:16:04 554
原创 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 2707
原创 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 49946 2
原创 查看签名apk调试日志工具
Android Studio可以调试debug apk,通过logcat查看日志;可并不能用来调试经过签名的release apk,这时候可以考虑用Eclipse的logcat查看签名的apk日志,但Eclipse占用内存太大了,并不是可行的方法,今天介绍一款工具Android Killer,可以使用Android Killer查看手机上apk的日志。工具下载地址1、记录App进程ID首先需要打开A
2016-06-02 10:35:22 1964
原创 Fragment监听返回键
Activity可以通过重写onKeyDown(int keyCode, KeyEvent event),很容易的监听物理返回键事件,而Fragment并不能重写物理键监听事件。在一个Activity多个Fragment页面的应用中,很多时候有必要的监听每个Fragment返回事件,并对每个Fragment做特殊的数据处理。如果将每个Fragment的返回事件都在FragmentActivity中
2016-05-24 08:25:13 4513
原创 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 4172 2
原创 android 5.x—过渡动画Transition
android 5.x 提供了3中过渡动画:进入:一个进入的过渡(动画)决定activity中的所有的视图怎么进入屏幕退出:一个退出的过渡(动画)决定一个activity中的所有视图怎么退出屏幕。共享元素:一个共享元素过渡(动画)决定两个activities之间的过渡,怎么共享(它们)的视图有以下进入和退出的过渡动画:explode(分解)—— 进入/退出从屏幕中间移动视图;slide(
2016-05-06 15:57:09 3191
原创 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 734
原创 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 1137
原创 android 5.x—Palette图片取色调
在android的版本更新历程中,UI美观越发成为Google发展的重心。Material Design是谷歌推出的全新的设计语言规范,旨在为手机、平板、台式机和“其他平台”提供更为一致、更广泛的“外观和感觉“。在android 5.x中提出了Palette提取图片颜色的概念,这样便可以把色值付给ActionBar,其他View,让整个界面保持统一的色调。使用Palette需要引入库com.andr
2016-05-01 15:55:41 1169
转载 android中xml tools属性详解
编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识、前端、后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过!第一部分安卓开发中,在写布局代码的时候,ide可以看到布局的预览效果。但是有些效果则必须在运行之后才能看见,比如这种情况:TextView在xml中没有设置任何字符,而是在activity中设置了text。因此为
2016-05-01 10:01:09 2593
原创 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 2749
原创 ScrollView中软键盘弹出依然遮住控件
在一个Activity页面中,常会有需要用户输入的文本控件EditText,EditText获取焦点后,弹出的软键盘往往会遮挡底部的其他控件,通常处理方法是:1、xml布局中,使用ScrollView包含用户控件; 2、Manifest文件相应的Activity节点下添加软键盘属性android:windowSoftInputMode=”stateHidden|adjustResize”经过这两步
2016-04-20 16:38:58 8954
原创 具有弹性的ListView
android默认的ListView滚动到顶端或是底端的时候,Google为其添加了半圆形的蓝色阴影效果。而在ios系统中,默认的列表都是具有的弹性的,列表滚动到底端或者顶端后会继续往下或者往上滑动一段距离。其实在android的ListView源码中,提供了一个控制滑动到边缘的处理方法:protected boolean overScrollBy(int deltaX,int deltaY,int
2016-04-16 06:36:21 646
原创 Android虚拟键遮挡控件
随着手机行业的快速发展,越来越多的手机产商在追求极致的过程中,逐渐用虚拟按键代替了物理按键。 在带有虚拟键的机子测试时,就会发现有些UI控件完全被底部的虚拟按键挡住了(虽然可以隐藏虚拟按键,可还是影响用户体验),效果图如下: 如图,界面底部弹出了popupwindow,而 popupwindow上面的button控件被虚拟键挡着,点不到button; 为了不让虚拟键挡着底部的button控件,
2016-03-10 16:11:55 3344 1
原创 gif动画生成工具
在写博文时,往往需要对某些demo进行动画效果的演示,有些时候我们会将桌面录制成视频,再通过视频播放器转转化为gif格式文件,而下面介绍的这个软件,可以直接将选中区域录制成gif格式;其中,界面上的间隔,指的是录制间隔,设置的越小,动画越流畅,生成的gif也会越大,我通常设置为50;选择录制区域时,需要右键点击,在弹出的菜单栏中选择【选择完毕】,这样录制的窗口就确定下来了。软件下载链接
2016-03-06 09:40:29 426
原创 仿专题订阅功能
在Android开发中,有些时候会涉及到专题订阅,订阅专题无非是添加/移除专题。而我们的产品的订阅功能稍微有点不同,专题数默认7个,只能替换专题,不能够取消/新添专题,这里给出展示如下图:实现过程如下: 1、自定义专题订阅容器,涉及到标签的移动,为了更灵活的定义标签位置,继承了相对布局RelativeLayout,将自定义布局命名为DraggingViewGroup;2、定义专题的宽度,专题的高度
2016-03-05 22:01:33 601
原创 Android画布canvas rotate,translate的理解
在开发过程中,经常会自定义view,有时候还涉及到自己画图,为了更好的产品体验,还会通过canvas.rotate旋转画布,绘制更复杂的图形或垂直文本。绘制有效的几何图形,当然离不开坐标系的选取。Android也定义了自己的坐标系,自然情况下,手机屏幕的左上角是坐标系的原点,向右是x的正轴,向下则为y的正轴。如下图是手机屏幕坐标系的定义:然而,屏幕的可见区域包含了多个view,其实每个view也是有
2016-03-02 00:36:11 2294
转载 Android技巧之drawablePadding设置
1.问题 我想很多小伙伴都和我一样应该很喜欢TextView中drawableLeft、drawableTop、drawableRight、drawableBottom这几个属性,因为我们可以直接用它来画出来一个图文排列的标签或者按钮,这样就对于用两个控件组成的相对复杂的布局来说容易的多,这在移动UI开发中很常用,但是这样经常会有个问题困扰着我,因为有时候我们想把图片和文字对应居中,这样就会出现关
2016-01-31 10:28:33 13227
原创 搜索框中搜索符号居中
在Android开发时,常常会添加搜索框,有时更会高仿ios搜索控件,将搜索符号显示在搜索框的中间,当点击搜索框时,又将搜索按钮移到左侧。如下图演示(生成gif被压缩了) 先给搜索框添加布局<RelativeLayout android:id="@+id/relative_search" android:layout_width="match_parent"
2016-01-25 10:11:06 3966
原创 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 16722
原创 Android循环添加多个控件
在Android开发中,我们有时候会在一个容器(例如:LinearLayout)中添加多个子控件,由于对控件的操作必须在主线程中,因此过多的占用主线程,势必会使程序终止退出。在下面的例子中,我们在一个LinearLayout容器中循环添加500个子控件(TextView),private final int CONTROLS_COUNT = 500;private void initWidget(
2016-01-17 19:08:20 4110
原创 webview.loadData加载出现乱码问题
昨天写了个demo,主要是从网上请求了些json格式的文章数据,然后取出有用的信息值拼凑成字符串(多半是文章文本和关联的图片,图片均转化格式),然后希望用webview加载这些数据展示文章信息,最后发现手机上显示出的图片完全没问题,可是文本文字都是一堆乱码。 在网上找了些资料,设置了webview默认编码为utf-8mWebView.getSettings().setDefaultTextEnco
2016-01-14 12:39:15 503
原创 Android 无线调试
相信很多Android开发者,都不会选择用Android模拟器调试app吧。Android自带的模拟器非常慢,占用计算机内存多,若是计算机内存比较小(4G),便会拖垮计算机的整体性能。所以很多Android开发者,都会选择使用真机调试app。只需要一部Android手机+数据线便可以很好的调试app了,可经常重复的使用数据线连接手机和计算机USB接口,对手机和计算机的接口损伤很大。这里就想大家介绍,
2016-01-13 12:36:55 706
原创 Android开发中使用MVP模式
一、为什么使用MVP模式 在Android开发中,Activity并不是标准的MVC模式中的controller,它的首要职责是加载应用布局,处理用户操作并做出响应。随着界面及逻辑的复杂度不断提升,Activity的职责便不断增加,导致整个类变得庞大臃肿。因此我们需要将复杂的逻辑处理放到另一个类Presenter中,而Activity只负责处理用户操作并响应。二、什么是MVP模式 MVP(模式-
2016-01-11 22:15:10 513
原创 json之FastJson解析
fastjson的使用一、JSON(JavaScript OjectNotation)是一种轻量级的数据交换方式。易于人的阅读和编写。也正是由于Json格式数据的简单和易用性,越来越多的开发者开始使用Json,以此同时,很多公司也封装了一套自己的Json框架,用来实现Json格式数据的转换,比如Google的Gson,阿里巴巴的FastJson,IBM的Json4J等。这里只介绍阿里巴巴的Fa
2016-01-10 23:57:42 837
retrofitDemo
2016-06-09
AndroidKiller
2016-06-02
android 5.x 过渡动画demo
2016-05-06
RecyclerView示例
2016-05-05
Palettedemo
2016-05-01
Elevation使用demo
2016-04-30
具有弹性的ListView
2016-04-16
canvas旋转绘图
2016-03-02
TextView Textsize
2016-01-21
添加多个子控件
2016-01-17
fastjson-1.1.36.jar
2016-01-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人