- 博客(32)
- 资源 (17)
- 收藏
- 关注
原创 android自定义最简单的流式布局
一、.首先 在自定义view方面需要 android 最基础的知识也就是View的绘制流程了measure、layout、draw的三个执行流程measure:测量,测量自己有多大,如果是ViewGroup的话会同时测量里面的子控件的大小 layout:摆放里面的子控件 draw:绘制 (重写onDraw)MeasureSpec:测量规格int 32位:0101...
2019-11-04 20:57:15
920
1
原创 Android夜间模式动态切换不闪屏
夜间模式在一些资讯类app中是不可缺少的,通过查阅资料发现Android官方在Support Library 23.2.0中已经加入了夜间主题。也就是只需要通过更换主题便可实现日间模式和夜间模式的切换。下面截取项目实现的夜间模式效果图: 实现夜间模式需要的配置 1.配置gradle implementation 'com.android.support:appcompat-...
2018-11-01 21:43:58
3188
4
原创 仿Boss直聘消息界面事件分发效果
在原公司待着没什么成长性,基本上每天都是坐等下班的状况,所以我决定辞职找一份具有挑战性的工作,由于8月份这个季节属于淡季,我拿到8份offer但是 由于这些公司做的产品 基本技术要求不高都是差不多的,所以我放弃了,接着找。然后闲来无事,看到boss直聘里面的一个ui效果,感觉还不错就撸了一个。 现在我们回归话题 话不多说直接上代码 布局文件<?xml version...
2018-08-30 14:13:03
1632
原创 Gson解析服务器返回json字符串 为null做处理
话不多说,貌似我也话不多,毕竟是程序员 整天和电脑打交道 圈子又那么小 话少由于google官方Gson没有对String 为null做处理 开始转换public class StringNullAdapter extends TypeAdapter<String> { @Override public String read(JsonR...
2018-07-31 10:41:39
5888
原创 webView关于弹出虚拟键盘弹出次数多了造成app闪退
由于设置了虚拟键盘<item name="android:windowSoftInputMode">stateAlwaysHidden|adjustPan</item> 这里面的属性的两个内容 [FATAL:jni_android.cc(243)] Please include Java exception stack in crash report05-07 11:...
2018-05-07 11:35:51
1816
原创 android一种新的屏幕适配方案
最近研究了一下android屏幕适配方案, 其实网上特别多的适配但是 我就感觉写的好高大上啊,但是一用到就是各种布局错乱 不能适配各种机型 。 小生不才写了一个简单的适配方案 你的布局里面的dp还是用你的dp ,什么都不用改变,你只需要几行子的代码 就可以搞定 当然 这个适配 不可能是万能的适配所有的手机,毕竟市面上手机就是大杂烩啊,程序员的我表示很心痛,好了废话我就不说了,相信你已经搜索...
2018-04-02 15:39:34
239
原创 aidl中魅族无法绑定的坑
最近写了一个demo 写了两个app 达成进程间通讯 代码如下:Intent intent=new Intent(); intent.setAction("com.cly.aidlservers.ContentService"); intent.setPackage("com.cly.aidlservers"); ...
2018-04-01 14:39:54
1219
1
原创 自定义view 圆形进度条
话不多说直接上代码 自定义view首先当然要 写几个构造方法了 private Paint paint; private Paint paint2; private Paint paint3; private float circleText=13; private int height; private int width ; private ...
2018-03-25 19:08:08
297
2
原创 解决在软键盘弹出把自定义标题栏挤出屏幕外
解决在软键盘弹出把自定义标题栏挤出屏幕外解决方案<item name="android:windowSoftInputMode">stateAlwaysHidden|stateVisible|adjustResize</item>
2018-03-19 18:24:52
1687
原创 文件压缩or解压
/** * 文件解压 * @throws IOException */ public static void unzip(String zipFile, String dir) throws IOException { int size; if(dir == null || "".equals(dir.trim())){ File file = ne...
2018-03-03 13:45:05
204
原创 关于科大讯飞 SpeechSynthesizer.createSynthesizer(this, this);等于null问题
关于科大讯飞 SpeechSynthesizer.createSynthesizer(this, this);等于null问题,1. 确保你的so库添加对了 android studio 需要自己创建jniLibs文件夹 2.你的项目是否使用了友盟推送或者个推 或者别的 第三方 这些第三方有一些进程 当你的app启动的时候 会调用两次 Application的onCreat
2018-02-06 13:26:21
6233
原创 android编辑框禁用emoji表情和颜文字
//完美解决输入框中不能输入的非法字符InputFilter inputFilter=new InputFilter() { Pattern pattern = Pattern.compile("[^a-zA-Z0-9\\u4E00-\\u9FA5_,.?!:;…~_\\-\"\"/@*+'(){}\\[\\]=%&$|\\/♀♂#¥£¢€\"^` ,。?!:;……~“”、“
2017-09-16 13:04:06
4994
2
原创 Android中PopupWindow响应返回键并关闭
在布局文件(*.xml)中随意选取一个不影响任何操作的 View,推荐使用最外层的 Layout。 然后设置该 Layout 的 Focusable 和 FocusableInTouchMode 都为 true。 获取该 View 的实例,现在你就可以对该 View 重写 OnKeyListener() 事件了 LinearLayout ll_layout = (LinearLayo
2017-09-03 11:17:05
2846
原创 MPAndroidChart Could not download javassist.jar
org.gradle.internal.resolve.ArtifactResolveException:Could not download javassist.jar (org.javassist:javassist:3.20.0-GA);解决方法:build.gradle 把 jcenter() 替换为 maven { url "http://jcenter.bintray.
2017-08-27 17:49:55
2325
原创 Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
错误:Error:warning: Ignoring InnerClasses attribute for an anonymous inner classError:(com.baidu.android.bbalbs.common.util.c) that doesn't come with anError:associated EnclosingMethod attribute
2017-05-14 14:49:47
1321
原创 android app冷启动
1、将背景图设置成我们APP的Logo图,作为APP启动的引导,现在市面上大部分的APP也是这么做的。 @mipmap/bg_welcome_start 2、将背景颜色设置为透明色,这样当用户点击桌面APP图片的时候,并不会"立即"进入APP,而且在桌面上停留一会,其实这时候APP已经是启动的了,只是我们心机的把Theme里的windowBackground的颜色设
2017-05-01 21:27:15
404
原创 Gradle的大型项目常用库和版本管理
1 主要是统一 管理版本号buildToolsVersion payposSDKVersion.buildToolsVersion 在app项目中build.gradle 2apply from: "${projectRootDir}/android-build/gradle/subproject.gradle" 在项目外层 build.gradle3
2017-04-09 20:28:46
320
原创 noHttp部分使用
首先在build.gradle添加依赖compile 'com.yanzhenjie.nohttp:okhttp:1.1.1'compile 'com.google.code.gson:gson:2.8.0' //这个我用于解析json数据使用之前在application中初始化 application记得在andoridMainfest.xml中注册pub
2017-04-09 14:59:17
361
原创 OkHttp遇到的坑
public PersterNetapi(){OkHttpClient okHttpClient = new OkHttpClient();Request request = new Request.Builder().url("http://www.weather.com.cn/data/cityinfo/101010100.html").build();Call cal
2017-04-09 11:50:21
1541
转载 微信支付问题
现在,越来越多公司,选择借微信的势来发展自己的平台,进入工作没多久,我也被告知了要对接微信支付的需求。原本以为这样的对接,跟着文档走,应该没多大的难度的,可是后来,我才发现,原来我太天真了。在此,留下印记,说说我在微信支付上面遇到的那些问题。 1、关于微信支付 首先说下微信支付。随着微信的红火,微信支付在第三方支付也占了一大块地盘,越来越多的公司在自己的APP或者网站上集成了微信支付。从微信支付的
2017-04-07 18:13:09
429
原创 反射为什么能反射,内部是怎样实现的
反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。在计算机科学领域,反射是一类应用,它们能够自描述和自控制。这类应用通过某种机制来实现对自己行为的描述和检测,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 在Java中的反射机制,被称为Reflection(大家看到这个单词,第一个想法应该就是去开发文档中搜一下了)。它允许运行中的Java程序对自身进行检...
2017-04-04 23:07:46
513
1
转载 html5+原生 js互调
随着移动互联网的高速发展,常规的开发速度已经渐渐不能满足市场需求。原生H5混合开发应运而生,目前,市场上许多主流应用都有用到混合开发,例如支付宝、美团等。下面,结合我本人的开发经验,简单谈一下对混合开发的认识以及实现方式。混合开发的优点优点显而易见,由前端工程师写一个页面,多个平台都可以运行,省了Android和iOS工程师不少事,无形中提高了开发效率,节约了开发成本。缺点
2017-03-23 22:44:07
2468
原创 在自己的app中调用其他浏览器显示网页
Uri uri=Uri.parse("http://www.baidu.com"); Intent intent=new Intent(Intent.ACTION_VIEW,uri); startActivity(intent);
2017-03-12 16:21:16
3948
原创 关于低版本design:23.0.0 会出现滑动的时候出现getX()出现为null问题
解决方案 使用更高版本 compile 'com.android.support:design:25.1.1'
2017-03-02 15:38:53
250
原创 fragment重影问题
话不多说直接上代码 List fragments = new ArrayList fragments.add(new HomeFragment()); fragments.add(new PersonFragment()); fragments.add(new DindanFragment()); fragment
2017-02-28 20:28:30
414
原创 Retrofit使用
//这段代码放到 业务层公共操作的封装 protected static ResponseInfoAPI responseInfoAPI;if (responseInfoAPI == null) { //网络访问 //第一步,创建Builder,指定baseUrl和数据解析工具 Retrofit
2017-02-26 19:40:15
258
原创 自定义scrollview弹性布局
public class DailScrollview extends ScrollView{private static final String TAG = "ElasticScrollView";//移动因子, 是一个百分比, 比如手指移动了100px, 那么View就只移动50px//目的是达到一个延迟的效果private static final float MOVE
2017-02-25 19:24:59
427
原创 实现秒表
public String getMin() {long min = (timeUsedInsec) / 60000;return min }public String getSec() {long sec = (timeUsedInsec / 1000) % 60;return sec }public String getLongMill() {lon
2017-02-25 19:21:52
655
原创 沉浸式java代码实现
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {Window window = getWindow();window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS| WindowManager.LayoutParams.FLAG_TRANS
2017-02-25 19:19:01
422
原创 listview条目长按问题
listview的条目android:orientation="horizontal"android:layout_width="match_parent"android:layout_height="match_parent"android:descendantFocusability="blocksDescendants"android:gravity="c
2017-02-25 19:16:38
348
原创 android6.0动态获取权限
/* 这里涉及到一个API,ContextCompat.checkSelfPermission,主要用于检测某个权限是否已经被授予,方法返回值为PackageManager.PERMISSION_DENIED或者PackageManager.PERMISSION_GRANTED。当返回DENIED就需要进行申请授权了。*//* 申请授权ActivityCompat.requestP
2017-02-25 19:13:07
413
原创 bitmap图片压缩
在移动设备上进行图片相关软件的开发,一定得先压缩图片,毕竟移动设备的内存有限,稍不注意就会导致内存溢出,刚好用到这里,就学习了一下相关的压缩图片,现在总结出来和大家共享。1.图片存在的几种形式:File,存在于我们的磁盘中,我们通常说的图片大小。 Stream即流的形式,比如我们上传网络图片。 Bitmap,就是我们通常指内存中图片的大小。2. 什么是质量压缩?图片的质量压缩,...
2017-02-25 18:56:37
393
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人