自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android绘制文本基本概念 top, bottom, ascent, descent, baseline

Android绘制文本基本概念 top, bottom, ascent, descent, baselinebaseLine:一行文字的底线。Ascent: 字符顶部到baseLine的距离。Descent: 字符底部到baseLine的距离。Leading: 字符行间距。基线(baeseline),坡顶(ascenter),坡底(descenter)上坡度(ascent),下坡度(descent)行间距(leading):坡底到下一行坡顶的距离字体的高度=上坡度+下坡度+行间距ascent是

2021-01-19 15:17:41 846

原创 动画 Animation Interpolator(插值器)

在掌握动画的四种基本的,变化后,还有一个比较重要的东西需要了解下,就是插值器 Interpolator,插值器其实就是用来控制动画的速度的,相当于导演的功能,想让动画在那个地方加快就加快,那个地方减慢就减慢。当然针对不同的动画插值器的效果是不一样的。一。使用。调用Animation 的 setInterpolator(Interpolator i) 方法setInterpolator这...

2020-04-17 21:06:55 712

原创 安卓下载安装更新包,各个版本注意事项

在app中大部分应用应该都需要,自动更新,就是根据版本号,来调用后端接口判断是都有最新APP,是否需要更新。那么在我们下载更新包,并安装的时候,就需要注意下,android 不同版本之间需要注意的一些问题。android 6.0 6.0以上的系统主要要注意的就是权限的动态获取。 比如 Manifest.permission.WRITE_EXTERNAL_STORAGE 等。androi...

2018-08-20 14:54:08 3151

原创 反射和注解的使用

Android中的注解一些概念和用法在我们写一些程序的时候有时会发现一些比较好用个的第三方库,比如butterknife,而且里面用法也很是简单,用了几个注解,就把原来要写的一堆代码给代替了,这其中效率让人甚是喜欢啊,所以不要说反射注解啥的没啥用哦。反射概念代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键...

2018-07-11 23:40:36 770

原创 gradle 中的buildTypes

一般配置buildTypes { debug { zipAlignEnabled true shrinkResources false minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt

2018-04-18 15:26:43 1044 1

原创 PopupWindow 实现背景灰色彷如dialog的样子点击灰色dismiss

PopupWindow 在创建的时候我们会选择PopupWindow出现的位置,以前用的时候都是创建的时候都是如下面这样的,生成的弹出框是宽充满,高设定个值,这样出来的PopupWindow 背景还是底部Activity的背景不是半透明灰色。PopupWindow mPopupWindow = new PopupWindow(contentView,getScreenWidth(this...

2018-04-13 15:09:42 895

原创 android 蓝牙BLE 开发

蓝牙开发分为传统蓝牙开发和低耗蓝牙开发(BLE),这边我就讲解下BLE的开发过程中的一些注意事项。大致流程一般开发蓝牙的流程是 1.校验蓝牙是否开启,是否可用。 2.搜索设备,获取设备列表。 3.根据要链接的设备地址链接设备,用GATT回调。 4.Gatt回调中发现gatt服务,根据所要操作的gatt服务UUID,获取目标服务。 5.从获取的gatt服务中获取相应的特

2017-10-20 10:59:03 515

原创 java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled. isScrap:false is

报错日志,调用RecyclerView时偶尔报错。java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled. isScrap:false isAttached:trueat android.support.v7.widget.RecyclerView$Recycler.recycleView

2017-05-23 15:39:15 649

原创 带分类的文字淡入淡出组件

本文是写个文字淡入淡出切换内容的自定义Textview组件。继承 Textview组件。 效果图: 组件代码:public class AlphaText extends TextView { private int mDuration; //文字从出现到显示消失的时间 private int mInterval; //文字停留在中间的时长切换的间隔 private L

2017-04-07 17:59:21 509

原创 垂直文字 带类别的滚动(垂直文字轮播)

自定义个文字的垂直方向轮滚的组件。 组件代码:public class VerticalScrollText extends TextView { private int mDuration; //文字从出现到显示消失的时间 private int mInterval; //文字停留在中间的时长切换的间隔 private List<ScrollTextBean> mTex

2017-04-07 11:56:39 1365

原创 ScrollView中嵌套RecyclerView问题

在ScrollView中嵌套RecyclerView,可能会出现以下问题: 在6.0和7.0的机子上滑动RecyclerView的时候会只能让RecyclerView部分的页面上下滑动,而我们想要的是整个页面ScrollView的滑动。网上有解决的方法是重写LayoutManager。 我网上找了一圈发现了一个更好的方法,就是用NestedScrollView来嵌套RecyclerV

2017-03-24 17:50:13 1004

原创 支付宝支付问题记录

支付宝支付注意点: 支付接口生成支付的 orderInfo 的时候需要所有字段都转码(一般转成utf-8)。退款接口的只需要sign转码(一般转成utf-8)。

2017-02-15 15:00:27 322

原创 微信支付问题记录(android)

1.在某台机子上支付失败,换台手机可以支付成功? 原因是微信会记录所要进行支付的app的签名,因为以前记录的这个app的签名不是正式签名导致支付失败,后面即使再安装正式签名的app也会支付失败,原因是微信会缓存记录的签名,解决方法是进到手机的设置的应用中找到微信,然后清除缓存,再重新安装就可以了(或者删掉微信重装)。2.不管什么机子都支付失败,签名错误? 一般的这种情况是应为你在开放平台

2017-02-13 10:21:17 623

原创 4.4以上android沉浸式

关于沉浸式,相信大家也都有了解,下面记录下一个简单实现沉浸式的方法。(4.4以上)在setContentView 前面调用以下方法。private void initState() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { //透明状态栏 getWindow

2017-01-09 16:56:02 415

原创 android 服务存活的方法

关于怎么让服务存活,相信很多人都研究过,我这里主要说下两种情况下的服务存活手段。情况一,因为资源紧张服务被回收杀死的情况。这种情况可以用以下的方法: 1. onStartCommand返回 START_STICKY 自启@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {return STA

2016-12-14 21:55:18 533

原创 cordova-plugin-datepicker 添加只选择年月的模式(android)

cordova-plugin-datepicker 这个cordova 官网的日期选择的插件,里面有几个模式,分别是date 日期选择,time 时间选择,还有datetime 日期时间都选的模式。但是有时候会有这样的需求,只显示选择年和月,或者只显示选择月和日。这时候就需要我们来改造下这个插件,以下下只显示选择年和月为例。首先,我们去扒下这个官方的插件的代码,我们可以看到,里面在调用日期和时间选择

2016-12-05 20:16:04 2995 2

原创 cordova 插件中原生调用js

最近搞了个本地推送的cordova插件,里面有这么个需求,在点击推送的本地消息时需要给混合的那边通知下,然后调用某个JS中的方法。首先我们要知道想要实现原生调用js,那么一定要借助原生中的webview组件。本文主要是简单说明下cordova插件中的原生是怎样一步步的调用到混合中的js的方法的。以下以本地通知的插件为例讲解下。原生中发送本地通知的代码,我这边就不细说了,有不懂的同学直接百度吧。我们直

2016-11-22 21:32:37 5318

原创 RecyclerView基础用法

RecyclerView 的用法和Listview 很像,事实上用RecyclerView 是完全能够代替ListView 和GirdView的。下面来教大家快速的学会RecyclerView 的用法。首先在用这个控件之前需要添加一个库,添加以下库后就可以使用RecyclerView组件了。 compile 'com.android.support:recyclerview-v7:24.2.1'我们

2016-10-31 22:11:58 447

原创 写cordova插件的简单流程

前提配置好Node.js环境,cordova和ionic 的安装好,android的SDK已经下载好。写个简单的插件—吐司sayHI1.打开cmd进入要放插件的目录,创建插件,需要在命令中输入插件名,插件ID和插件版本号。 plugman create --name CuiPlugin --plugin_id cuiPlugin --plugin_version 0.0.1 2.创建好的插件目录如

2016-10-25 22:05:26 777

原创 cordova 插件之资源文件处理

最近帮忙搞这一些cordova ,在弄插件的时候发现有时候想在插件里面用一些自定义的layout,String,图片啥的获取资源文件的时候,写在插件里面后在引用R资源的时候上面倒入包名需要具体不同工程再去java文件里面再改这个import 的包,那这样的话别人使用你这个插件的话就很不爽了,还要自己去改代码。。。插件用起来就很不爽了。于是想了想这个插件里面有木有也像原生里面那样支持Module的直接

2016-10-25 21:13:37 3396 10

原创 view getLeft, getRight, getTop, getBottom

最近搞了一个裁剪图片的小功能,当中遇到关于android 中的view 组件的获取位置的一些时候,但是总是有点地方算不对。最后发现了几个需要记录的点,特此记录下,以便后面查看。注意点一: 首先android中的view 的四个值(left,top,right,bottom)是指两个坐标, 左上角的坐标(left,top)和右下角的坐标(right,bottom)注意点二:

2016-10-20 23:50:53 419

转载 Android 6.0 新特性(官方文档翻译)

转自http://blog.csdn.net/u013174702/article/details/50835891 Android 6.0 的变化(Android 6.0 Changes)随着新的特性和功能,Android 6.0 (API level 23), 系统和API的行为发生了很多改变。本文强调一些关键的变化,你应该在你的程序中考虑和理解。 如果你有以前发布的Android应用程序

2016-09-18 21:17:13 598

转载 【Android基础】Activity的启动模式(android:launchMode)

转载自:http://blog.csdn.net/feng88724/article/details/6412638在Android里,有4种activity的启动模式,分别为: “standard” (默认) “singleTop” “singleTask” “singleInstance”它们主要有如下不同:如何决定所属task “standard”和”singleTop”的acti

2016-07-20 14:31:12 299

原创 动画 AnimationDrawable 帧动画

android 动画中的比较重要的一种动画就是帧动画,如名字所表达的意思就是把画面一帧一帧的放,有点类似电视播放画面那样。 下面是个用了两种形式实现了帧动画:首先在xml中定义个ImageView。 <ImageView android:id="@+id/loadingPic" android:layout_margin="10dp" android

2016-07-19 16:51:15 404

原创 DES 数据加密

在开发的时候向服务发起请求的时候,有时候请求的结果需要加密。 本文简单介绍下DES的加密用法;一,八位的密钥的加解密 String plaintext = "我1234567890从"; String ciphertext = DES.encryptDES(plaintext, "89018D39"); Log.d("DES","明文:" + plaintext

2016-07-19 11:01:53 492

转载 android 单例模式

转自:http://blog.csdn.net/beyond0525/article/details/22794221 单例模式是设计模式中最常见也最简单的一种设计模式,保证了在程序中只有一个实例存在并且能全局的访问到。比如在Android实际APP 开发中用到的 账号信息对象管理, 数据库对象(SQLiteOpenHelper)等都会用到单例模式。下面针对一些例子分析一下我们在开发过程中应用单例

2016-07-06 14:13:13 355

原创 播放音乐,声音

private MediaPlayer player; /** * 播放 */ private void startPlay() { stopPlayer(); player = new MediaPlayer(); player.reset(); player.setOnErrorListener(n

2016-06-30 11:09:19 1023 3

原创 获取网络链接状态

public static boolean isConnect(Context context) { // 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理) try { ConnectivityManager connectivity = (ConnectivityManager) context

2016-06-30 10:15:07 537

原创 android 脑图

抽空搞了个android 开发的脑图,特此分享下,欢迎各位大牛,指点江山。 具体的脑图链接如下: http://naotu.baidu.com/file/0943e297f7f76d45cb6ac06f55637906?token=748ee3e926a1bb92脑图中的每个技术和开源的代码都是git上已有的,总链接请点击“技术参照”的链接。如果有啥更好的思路,欢迎直接在下面评价。

2016-06-24 15:02:31 882

原创 更新百度地图,极光推送SDK 时无效

注意下,在更新百度地图和极光推送的sdk 时在替换 .so 的时候别忘了把src\main\jniLibs 目录下的镜像一起更新。

2016-06-20 16:49:23 1370

原创 java.io.IOException: Prepare failed.: status=0x1

最近搞了个android 网络语音播放,遇到一个奇葩的问题,同样的代码,在华为小米的手机就可以正常的播放语音,但是搞到LG 的手机上就不能播放,报java.io.IOException: Prepare failed.: status=0x1的错误,然后网上查了很多的解决方法都不好使,看来我这个报错的原因和网上的那些个同志的不一样,搞了半天发现如果要播放手机本地的音乐没啥问题,那我就考虑是不是网络的

2016-06-15 17:04:05 3347

原创 Listview 中的item 每个addTextChangedListener 都被触发了

最近遇到一个问题,在Listview 中的item 放个editview ,然后监听editview 的文本变化,来设置数组中的数,addTextChangedListener, 发现每个item的监听都被触发了,导致我的数组中的每个数都是一样的。。然后notifyDataSetChanged 后,就把界面Listview中的每个item中的文本框中的内容都变成刚才文本改的一样的。。经过苦苦查询,终

2016-05-05 17:49:24 4600 6

原创 双击返回退出

双击返回键实现退出: private static Boolean isExit = false; /** * 再次按下返回键退出 */ private void exitBy2Click() { Timer tExit = null; if (isExit == false) { isExit = tr

2016-05-04 16:37:12 628

原创 AlertDialog 点击按钮后让dialog 不消失

现在有个需求是在 AlertDialog中点击确认后,发现AlertDialog中的某个输入框的内容为空,需要提示用户,填写后再调用确认后的操作,但是在点击确认后,AlertDialog就消失了,所以需要稍微修改下,让点击后校验不通过时,不让AlertDialog 消失。 代码如下:核心代码 try {

2016-05-04 14:58:51 461

原创 图片压缩

最近在搞一个app 的上传图片评价功能,分别从相机相册中获取图片,然后要上传到服务器,但是如果上传的话那么图片就不能太大,不然太费流量了,所以要压缩下。 网上搜索了下压缩的方法,发现大部分的人都是用将文件转换为Bitmap压缩,然后再上传,我也试了试,发现如果用Bitmap 压缩的话压缩的太厉害图片的清晰度就不清晰了。 又捣鼓捣鼓,发现如果用btye 压缩的话就没这个问题,我用by

2016-04-22 16:58:03 392

原创 ViewPager +FragmentPagerAdapter 的获取getActivity()

发现了一个问题,ViewPager +FragmentPagerAdapter 的viewpager 的fregment 中获取getActivity() ,发现有时候会获取到空的,大概情况是这样的,第一次打开这个viewpager 所在的activity时是没有问题的,fregment可以获取到 getActivity(),然后关掉这个activity也就是finish掉后在进去,debug发现里

2016-04-22 11:54:30 746

原创 ViewPager 放PagerAdapter 的notifyDataSetChanged()

最近搞了一个查看图片的viewpager ,里面放的是pagerAdapter ,但是发现当删除 某个页面后调用notifyDataSetChanged() 界面没发生变化,后来搞了搞,发现要这么写PagerAdapter : 主要是destroyItem这个方法重写写错了。。应该这样: @Override public void destroyItem(ViewGroup

2016-04-22 11:15:51 344

原创 http请求返回405 和404

一般的调用的请求返回404 大部分是URL 不正确。 一般的调用的请求返回405 大部分是 传输的方式不正确,把get改为post或者post改成get。

2016-04-18 01:22:18 10474 1

原创 listview 嵌套gridview notifyDataSetChanged无效

今天搞了一个界面是,在Listview 中的每个小item 中嵌套一个Gridview ,发现Listview 的madapter.notifyDataSetChanged的时候,Gridview 里面的内容没有变,查找了下原因是因为,我把Gridview 的ArrayList的变量定义在了 Listview 的adapter的头上面,然后在每个Listview 的getview中直接clear(

2016-04-14 22:19:40 2190

原创 android Error:Execution failed for task ':app:mergeDebugResources'. > Some file crunching failed, se

在andriod 中的XML 文件中的布局里,把一个组件的背景设成一个图片,报android Error:Execution failed for task ‘:app:mergeDebugResources’. > Some file crunching failed, see logs for details 的错误,原来是这个图片是我从同事那边用QQ 传输的,另存为后自动为png的格式导致的,

2016-04-13 09:39:08 2442

CuiPlugin_test

资源R的省略用法cordova 测试代码

2017-06-21

cordova_plugin

cordova_plugin

2017-04-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除