- 博客(51)
- 资源 (6)
- 收藏
- 关注
原创 android 8.0适配 —— app自动更新问题
android7.0适配参见链接Pro1:安装时解压缩错误原因:setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)和addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)顺序问题.如果setFlags在addFlags之后,会将之前的flag清掉,导致读取权限获取不到,进而解压缩出错。final Fil...
2019-06-24 10:34:01
969
原创 ViewPager卡片效果(一)——画廊效果
目录1 PageTransformer介绍2、画廊效果2.1 普通画廊2.1.1 布局2.1.2 定义自己的PageTransformer2.1.3 使用2.2 3D画廊Preference1 PageTransformer介绍PageTransformer是ViewPager内部定义的一个接口,用于控制ViewPager中item view的滑动效果...
2019-05-07 15:30:14
1604
原创 RecyclerView不能铺满屏幕宽度
使用View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.check_item, parent,false);//解决宽度不能铺满代替之前的View view=View.inflate(context, R.layout.child_himonet_detail,null);...
2019-01-17 14:58:46
1896
原创 Resources$NotFoundException: String resource ID #0xa
Resources$NotFoundException: String resource ID #0xa原因:TextView.setText()时传入了数字,而非字符串。
2019-01-16 15:51:55
3146
原创 Glide插件的使用
1、添加依赖compile 'com.github.bumptech.glide:glide:3.6.1'2、使用(网络图片+本地图片) 圆角效果不显示、以及刷新后图片变形问题,已在下方代码中有所解释:public class GlideUtils { public static final int FIT_CENTER=0;//默认 public static...
2018-11-30 15:45:51
707
转载 android 动画跨布局显示,被其他控件遮盖问题
在该动画的所有父布局上添加以下代码:android:clipChildren="false"android:clipToPadding="false"ps:该动画执行View所在父布局,以及外层父布局....直至根布局,均要设置。android:clipChildren 子View是否限制在父View之中。默认true,超出部分不显示。android:clipToPa...
2018-11-28 16:02:24
1791
原创 使用DialogFragment,解决PopupWindow中EditText无法复制粘贴问题
问题:PopupWindow中,EditText无法使用复制粘贴功能。方法:使用DialogFragment实现。 package com.example.administrator.dialogfragmentdemo;import android.content.Context;import android.content.DialogInterface;import a...
2018-10-29 14:26:04
1164
原创 Glide使用时,遇到You cannot start a load for a destroyed activity
方法:在onResume()和onPause()中分别添加以下代码: @Override protected void onPause() { super.onPause(); Glide.with(this).pauseRequests(); } @Override protected void onResume() {...
2018-09-30 14:21:28
1058
原创 android6.0/7.0以上拍照崩溃or闪退,FileUriExposedException
1、问题 ① SecurityException ② FileUriExposedException 2、原因及方法(1):SecurityException无法调起相机 原因: 权限问题 方法:android6.0以上,需要动态获取camera权限,否则无法调起系统相机。【注意,另外的读写权限不可忽略,也需要动态获取】priva...
2018-09-19 11:55:29
1857
原创 自定义TextView,实现文本展开与收起
目录1、功能2、思路 / 方法3、设计实现 3.1 变量说明:3.2 自定义View具体步骤3.3 使用自定义View 4、参考1、功能(1)支持全文展开/收起(按钮紧跟着文本后面显示,非另起一行),见下图。(2)可设置收起时最大显示行数;(3) 可设置“展开/收起”的具体文字显示、字体颜色,是否带省略点等;(4) 支持 “展开/收起”点击事件(即,后...
2018-08-02 10:40:48
1508
原创 Python2.7安装
1、下载安装包 Python官网:https://www.python.org/ ps:注意安装包需要下载的是64位还是32位的(根据电脑系统而定)2、安装 除了安装路径,其他一路Next到最后finish。安装好后,打开“开始”》“Python xxx”》“IDLE(Python GUI)”即可打开用户交互界面进行操作了。3、配置环境变量计算机》属性》高级系统设置》环境...
2018-06-15 09:51:14
511
原创 Android在线客服——云旺即时通讯界面自定义
本篇基于云旺OpenIM进行设计。1、界面:写一个类继承IMChattingPageUI。比如,重写下面的getCustomTitleView()方法,可设置聊天界面的标题栏(设置标题名以及返回键等):@Overridepublic View getCustomTitleView(final Fragment fragment, Context context, LayoutInflater i...
2018-06-11 18:44:37
1504
原创 Android Studio删除依赖
①在build.gradle中删除对应依赖代码(这里我注释掉,因为会用到)②检查工程中的依赖点击"file">>“project structure”>>选择右边的“dependencies”,如果有需要删除的的依赖包(仓库、jar包之类),点击“-”进行删除即可。③自行添加jar包的,还需把工程下的jar包文件删除。...
2018-06-11 18:23:01
4687
原创 Android即时通讯 —— 在线客服功能
本篇借助于“阿里云旺”进行试验。目前,其即时通讯模块均为免费。步骤1、引入OpenIMSDK【配置build.gradle文件】第一种方法:配置maven仓库地址①配置仓库//【0】云旺准备 ----集成repositories { maven { url 'http://repo.baichuan-android.taobao.com/content/groups/BaichuanRe...
2018-06-11 18:08:30
5716
转载 自定义Dialog去除白色背景 + Dialog其他用法
1、去除白色背景加上下面这句代码:dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);2、点击屏幕其他地方,以及返回键不消失dialog.setCanceledOnTouchOutside(false);// 设置点击屏幕其他地方Dialog不消失dialog.setCan...
2018-06-08 14:08:25
3406
原创 Android后台播放音乐(含通知栏操作)
功能①按下home键回到桌面时,音乐仍然可以播放,同时系统通知栏显示当前音乐播放的状态;②点击App界面的按钮,可控制音乐播放的暂停继续,同时系统通知栏播放状态作相应改变;③点击系统通知栏按钮控制音乐播放暂停,同时App界面播放状态作相应调整;④App播放界面销毁时,清除通知栏对应信息(即播放的控制View)实现步骤小提示:本篇是基于网络音乐进行相关操作的,如果是本地音乐,操作差不多。(1)绑定服...
2018-06-06 14:04:54
17988
1
原创 Android视频播放器(支持https、全屏缩放)
相关总结: JiaoZiVideoPlayer黑边以及黑色阴影问题Android视频播放器——JiaoZiVideoPlayer / JiaoZiVideoPlayer进度问题 Android视频播放器——JiaoZiVideoPlayer / JiaoZiVideoPlayer 的常用方法(一) 节操播放器问题的较完整总结(上)...
2018-06-01 10:47:50
4687
原创 JiaoZiVideoPlayer黑边以及黑色阴影问题
1、缩略图边缘位置出现黑色阴影方法:①将缩略图的scaleType设置为FIT_XYplayerVideo.thumbImageView.setScaleType(ImageView.ScaleType.FIT_XY); ② 写一个类,继承JZVideoPlayerStandard,并重写getLayoutId()。该方法常用于自定义布局。 @Override ...
2018-05-31 17:30:57
3932
2
原创 自定义View之基础篇——常见分类与构造方法
1、自定义View的分类 (1)按照继承的基类来分,可以划分为:View 、ViewGroup。 其中View类,可以是View,也可以是具体的某个控件eg.ImageView;ViewGroup,可以是任何一个可以包含子view的容器,eg.LinearLayout。 (2)按照实现的方式分 方式 继承自 ...
2018-05-21 16:04:16
287
原创 Android颜色相关小知识
1、四种常见形式Bitmap.Config的几个枚举类型 ARGB_8888、ARGB_4444、GRB_565、ALPHA_8颜色模式说明每像素占用内存(byte)ARGB_8888四通道高精度(32位)4 (8bit*4=32bite=4byte)ARGB_4444 四通道低精度(24位)2 (4bit*4 =16bit=2byte)RGB_565仅存储颜色信息,无透...
2018-05-18 16:48:16
304
原创 自定义View之基础篇——PorterDuff
前言本章主要介绍颜色渲染器PorterDuff。PorterDuff其实来自两个人名:Tomas Porter和Tom Duff。利用PorterDuff.Mode,我们可以实现图片的任意叠加混合,eg.实现画图中的橡皮擦功能、显示圆形图片等等 1、核心代码以圆和矩形为例。dst为下层,是先画的图形(这里我选择的是灰色的圆);src为上层,后画的图形(我选用的是蓝色矩形)。实验...
2018-05-18 16:34:33
3656
原创 Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface androi
(1)问题 自定义控件时,报一下错误: Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet](2)解决方法添加构造函数时,该方法必须复写,否则报错。public xxView(Context co...
2018-05-16 18:05:07
602
原创 Android自定义View之基础篇——坐标系
1、前言手机屏幕坐标系与数学坐标系的不同,主要留意y轴方向。2、手机坐标系(1)屏幕坐标系/Android坐标系以屏幕左上角为原点。如图所示,图中绿色边框位置为屏幕所在区域,其中绿色边框左上角为原点。(2)View坐标系如图,手机屏幕区域,即上图绿色边框围裹部分,可分为状态栏(即wifi信号、电量显示区)、标题栏、View可绘制区域。其中,标题栏和可绘制区域为我们的...
2018-05-14 17:51:25
1172
原创 android中dp、px、sp转换
1、通用写法:/** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */public static int dp2px(Context context, float dp) { //获取设备密度 float density = context.getResources().getDisplayMetrics().density; //4.3, 4.9, ...
2018-05-14 17:50:25
157
原创 View的学习(一)
本章主要讲述View的几个常用方法,对于后期自定义控件非常有用。1、requestLayout()在API文档中有这样的介绍: Layout is a two pass process: a measure pass and a layout pass. The measuring pass is implemented in measure(int, int)......The second p...
2018-05-14 17:49:17
195
原创 自定义View 之基础篇——获取控件宽高
1、getMeasuredHeight() 与 getHeight()getMeasuredHeight():获取控件实际高度,包括显示的部分和超出屏幕的部分。它的值与屏幕无关。getHeight():获取控件在屏幕中显示的高度一般情况下getMeasuredWidth和getWidth方法的值是一致的。使用:(1)一般情况下,除了在onLayout方法中调用getMeasuredWidth方法外...
2018-05-14 17:45:33
11968
1
原创 Android视频播放器——JiaoZiVideoPlayer / JiaoZiVideoPlayer进度问题
(1)需求项目中,如果需要保存进度,以便下次继续播放或者始终从头开始播放,就需要考虑设置进度的问题。(2)使用情况一,始终从头开始播放:jzVideoPlayerStandard.SAVE_PROGRESS=false;//不保存进度设置此句即可。情况二,保存进度,下次直接续播:具体方案,网上均有,比如Android JiaoZiVid...
2018-05-10 17:32:14
5432
4
原创 Android获取app版本信息
1、获取包的信息private static PackageInfo getPackageInfo(Context context) { PackageInfo pi = null; try { PackageManager pm = context.getPackageManager(); pi = pm.getPackageInfo(context.getPac...
2018-05-04 09:18:19
742
原创 android开发解决华为手机“屏幕背景透明不兼容”
/** * 设置添加屏幕的背景透明度 * @param bgAlpha 透明度 0-1 * @param activity */public static void backgroundAlpha(Activity activity,float bgAlpha){ WindowManager.LayoutParams lp = activity.getWindow().get...
2018-05-03 19:48:25
2355
原创 Android 使用Glide加载图片变形(拉伸)
(一)场景ImageView可通过scaleType属性设置图片填充方式,但是使用Glide加载时,有时会出现明显失真,图片会被拉伸变形。(二)方法①保留布局文件中设置的scaleType属性设置;② 加载图片方式设置Glide.with(context). load(temp.toString()) .asBitmap().fitCenter() //刷新后变形问...
2018-05-02 10:41:30
7588
原创 android studio 查看源码 —— 测试ok
1、当我们ctrl点击时,发现找不到相应资源,如图所示。若是之前已下载,跳过该步,直接第二步(判断有没有下载,可查看sdk下载目录下source文件内有没有对应api即可)点击“DownLoad”,进入下载页,或者点击工具栏的“sdk manager”,进入下载页 》勾选右下角的“show package details”,查看API对应的source有没有下载,,选中后,点击apply。2、下载...
2018-04-04 14:25:31
406
原创 Android Studio 非正常关闭再打开时报错
1、问题描述本人由于使用软件杀毒,在未关闭Android Studio的时候重启电脑,造成AS重新打开时,报如下错误:Unknow facet type:'android-gradle'Unkow facet type:'android’Unknow facet type:'java-gradle'2、解决方法File>>Settings>>Plugins,找到Androi...
2018-02-28 17:35:00
1467
原创 Android 微信/QQ分享图片黑边问题
(1)问题产生的原因前提:本人是通过将ImageView中图片保存为本地的方式,继而进行分享的(文章结尾会附上实现方式),xml布局时,图片的大小为包裹布局。问题:如下,QQ显示存在黑边。经过研究,发现QQ将该图转存到本地时,也是黑边显示(QQ可能也是将整个控件的内容绘制后保存的)。而将改图替换成其他图片时,部分图片又显示正常。故猜测:黑边问题可能跟QQ端ImageView的scalety
2018-02-05 09:58:05
3948
原创 Android视频播放器——JiaoZiVideoPlayer的简单使用
(1) 需求因项目需要,前端需要实现https视频播放功能,能够支持全屏缩放、进度拖拽、重力感应横竖屏切换,故采用该框架。JiaoZiVideoPlayer前一版为JieCaoVideoPlayer,如果项目中不需要支持https,用上一个版本也可以。使用上也就是前一版本setup()会有返回值,当其返回true时加载缩略图即可。(2)使用①在buid.gradle中添加依赖c
2018-01-22 17:20:36
3489
原创 Android 请求数据时,报错 "HttpException:HTTP 503 Service Temporarily Unavailable”
(1)场景http请求数据时,报以下异常 :同时,后台也检测不到接口请求的痕迹,但是有时再试一下又行了。(2)解决思路①后台连接数量可能限制,比如1s内同一个人只能请求一次等,或者排查一下有没有默认设置eg.多长时间内可连接数量;②服务器的配置,比如带宽、空间等是不是够用③最后,查看代码是不是出现问题
2018-01-16 14:41:49
3461
原创 http/https请求数据时,出现的常见异常判断
在请求数据出现问题时,我们往往需要判断一下是数据提取问题,还是网络/服务器异常问题。前者,在开发过程中自行判断;后者情况下,我们会予以提示,eg.提示“连接异常,请检查网络”等字段。此时单独再去判断一下网络感觉没有必要,我们可以捕捉这些异常,然后予以判断。以下就是本人App中常用的:if( s.contains("ConnectException") || s.contains("So
2018-01-16 14:13:31
5473
1
原创 PtrClassicFrameLayout+RecyclerView下拉刷新组件与ConvenientBanner/ViewPager 事件冲突
1、场景分析:(1)场景:下拉刷新包裹一个带head的listview,而head包含一个横向滑动的控件eg.ViewPager。测试会发现,ViewPager等横向控件左右手动滑动不太流畅。而且必须是严格的水平滑动(△x>0 ,△y=0)情况下,左右互动才会触发。补充说明: PtrClassicFrameLayout+RecyclerView:一组上拉加载下拉刷新组件
2017-12-26 17:15:39
1561
原创 android tint着色器(蒙层/阴影等)
1.需求分析: 当我们需要同一张图片进行细微处理(eg.图片的颜色变暗、变浅等)时,一般的做法有以下几种:①通过alpha设置透明度,让一个深颜色的图片变浅 ———— 该方法适合有透明需求时②通过selector切换图片 ———— 该方法往往伴随着点击等事件。而且若是图片原型相同,仅为改变里面的部分参数如色值等而用此方法,容易造成资源的浪费,以及最后安装包的过于庞大。因此,
2017-12-20 19:35:43
2093
原创 Scrollview嵌套listview等控件时,页面显示不在顶部
Scrollview嵌套listview等控件时,页面显示不在顶部。使用scrollView.scrollTo(0,0)设置不起作用,因为内部的listview获取了焦点。以此为出发点,常见的解决方案有:http://blog.youkuaiyun.com/xiechengfa/article/details/46476227
2017-12-08 15:24:49
415
ViewPager画廊效果
2019-05-07
DialogFragment,解决PopupWindow中EditText无法复制粘贴问题
2018-10-29
自定义TextView,实现文本展开与收起(带demo和详细注释)
2018-08-08
Android音乐后台播放(含通知栏操作)
2018-06-06
带清除按钮的编辑框(EditText)
2017-06-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人