- 博客(56)
- 资源 (38)
- 问答 (1)
- 收藏
- 关注
原创 JS&Java 交互 报错 JavaException was raised during method Invocation
如上图所示当JS调用本地方法时报错,原因让人很容易忽略。在与JS交互的方法中不能直接操作View,需要放在主线程操作才能生效。如下代码所示: @JavascriptInterface public void setTitle(final String title) { HandlerUtil.runOnUiThread(new Runnable() { ...
2019-05-22 10:45:20
14125
原创 Android studio System.out 中文乱码
今天在做一个线程方面的总结,突然发现 System.out.print中文会乱码,如下图这是因为在Gradle中没有配置,在对应的module的gradle中添加如下配置代码:tasks.withType(JavaCompile) { options.encoding = "UTF-8"}这样就好了...
2018-11-21 09:43:17
889
3
原创 Base64 编码
Base-64编码可以将任意一组字节转换为较长的常见文本字符序列,从而可以合法地作为首部字段值。此处记录方便开发时使用package com.cnepay.mobile.bts.utils;import java.io.UnsupportedEncodingException;/** * @author xugang * @date 2014年8月22日 下午9:50:28 */public
2017-04-11 16:49:30
509
原创 RSA Android 实现
Android 开发时使用RSA加密时使用的类,方便使用时拷贝package com.cnepay.mobile.bts.utils;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.m
2017-04-11 16:42:40
736
原创 Android 浸入式标题栏
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { // 透明状态栏 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); } 要注意的是,不要将状态栏设为白色,因为Android的状态栏图标和文字是白色的,而且API
2016-06-25 22:16:58
5125
原创 Android Activity 详解
生命周期 如上图所示,Activity生命周期很简单共七个生命周期函数,oncreate(),onrestart(),onstart(),onresume(),onpause(),onstop(),ondestroy(); 下面举两个例子来说明Activity生命周期函数调用关系。A Activity 打开 B Activity ,B占满屏幕,返回A。A Activity 打开 C Activi
2016-06-25 21:54:43
679
原创 Android Handler 详解
Handler适用于线程间交互的一种机制。牵扯到四个类:Handler,Looper,MessageQueue,Message。 这四个类关系如下图所示: 这个图自己画的,比较简易,但是很能说明他们的关系 Handler:用于线程之间发送消息,一般Handler在主线程中被创建,而后和UI线程绑定。其他子线程完成了耗时任务需要使用“sendMessage”发送消息到消息队列。 Messa
2016-06-25 19:54:28
857
原创 Android Studio 关联源码问题
Android Studio 点击某个类查看源码有时候会出现如下情况 这种情况并不是每个项目都会出现这种情况,那是因为项目的编译版本不同,有的关联了Sources中的源码,而有的没有。 下面说一下具体的解决办法: 第一步:找到jdk.table配置文件Windows系统中: C:\Users{USER_NAME}.AndroidStudio2.0\config\option
2016-06-25 19:26:19
2549
原创 Android EditView 输入限制(软键盘限制)
众所周知EditView有个inputType 属性可以设置输入的类型。 如下设置,则只能输入数字:android:inputType="number"但是有时候需要自定义输入限制条件,比如第一位只能是“1”,一共11位,超过11位则无法输入,或者只允许输入小于5以下的数字等,则需要其他设置。Android中有三种方式来设置。 第一种:digits 属性 如下设置为:只能输入0-5之间的数字,
2016-06-25 19:14:02
2168
原创 Android Socket 聊天室
项目地址:https://github.com/SunnyLine/Android-Socket-ChatRoom 部分截图:
2016-04-16 21:48:47
2168
原创 SwipeRefreshLayout+RecyclerView 下拉刷新
SwipeRefreshLayout 是v4包中的控件, RecyclerView 是v7包中的控件,替代了ListView,强制使用ViewHolder。 Demo 地址:https://github.com/SunnyLine/SwipeRefreshAddRecyclerViewLayout<android.support.v4.widget.SwipeRefreshLayout xml
2016-04-07 23:30:28
500
原创 购物车-----ListView 中CheckBox混乱
Demo项目下载地址:https://github.com/SunnyLine/ShopCart这里只是购物车页面,地址管理,和订单生成都没有添加。主要处理ListView中CheckBox混乱问题,商品删除,数量增减,全选,取消全选,等。代码如下:Adapter ,用Map记住CheckBox状态和CheckBox标记信息 public void init() {
2016-04-07 23:09:11
647
原创 Cursor 介绍
简介: 这个接口提供随机读写访问一个数据库查询返回的结果集 游标实现不需要从多个线程同步所以代码,使用游标使用光标时应该执行自己的同步。方法: void close(); 关闭游标,释放所有的资源,使其完全无效。 void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer) 文本检索请求的列,并将其存储在缓冲区。 v
2015-12-21 13:14:21
988
原创 解决ViewPager 放在ListView 头位置事件冲突
很多情况下,ListView头会放着一个横向滑动的控件,不管是ViewPager还是其他自己写的View 。都会有冲突,因为手指滑动无法保证百分之百的水平或者竖直,所以需要重写头部View的dispatchTouchEvent方法来解决问题。如下所示: float mDownX; float mDownY;// 处理Viewpager作为ListView头事件冲突 @Over
2015-12-20 20:18:12
608
原创 WebView 支持上传图片
今天公司突然上传了一个网页有上传图片功能,但是WebView没有支持,没办法只能再写些代码。然后就ok了,效果如下图所示: 实现关键代码如下所示: @SuppressLint("NewApi") private void initmWebView() { mWebView.getSettings().setJavaScriptEnabled(true); //
2015-12-08 16:04:41
557
原创 微信支付-返回签名错误
Android 微信支付SDK ,支付操作大概3步。 1、生成预支付订单 2、生成签名参数 3、调取微信支付页面但是需要注意的是,在获取预支付订单的时候会报签名错误。 大概也就那几种可能: 1、微信开放平台的签名设置和你当前的的确不一样,这个需要自己检查 2、API 密匙不正确,这个需要登陆商户后台,修改。 3、商品名中有中文,需要对拼的XML进行编码ISO8859-1。如下priva
2015-10-15 15:55:45
6877
原创 ScrollView中放ListView,ListView中放GridView冲突问题
ScrollView 中放ListView是避免不了的,网上有种靠谱的方法,我用过觉得很不错。ListView package com.work.driver.view;import android.content.Context;import android.util.AttributeSet;import android.widget.ListView;/** * @project a_d
2015-10-04 16:27:07
374
原创 拍照图片旋转问题
公司App需要上传头像,手机拍照不同的手机不同的角度,拍出来的照片可能是旋转的。所以需要再旋转回来。 先获取图片被旋转的角度/** * 读取图片属性:旋转的角度 * * @param path * 图片绝对路径 * @return degree旋转的角度 */ public static int readP
2015-10-04 16:19:12
531
原创 MD5加密
package com.library.app.instrument;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/** * * @author admin * @see DesUtil */public class MD5 { private static f
2015-10-04 15:34:10
384
原创 对称加密(Des)
package com.library.app.instrument;import android.annotation.SuppressLint;import java.security.SecureRandom;import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFact
2015-10-04 15:31:59
353
原创 Android 手机常用方法
package com.work.driver.utils;import java.io.File;import java.util.List;import android.app.ActivityManager;import android.app.ActivityManager.RunningAppProcessInfo;import android.app.ActivityManager
2015-10-04 15:24:41
515
原创 常用网络判断
/** * 当前网络是否为3G或WIFI * * @param Context * 参数 * @return boolean 返回类型 */ @SuppressLint("DefaultLocale") public static boolean isWifiOr3G(Context ctx) {
2015-10-04 15:05:08
351
原创 Android Fragment 拦截 Back事件
App改版,要大量使用Fragment,但是Fragment毕竟不是Activity,很多功能没有Activity全面,比如Back事件监听。问题有大量的Fragment,有的里面是WebView,用户点击back希望能够返回历史记录。想在特定的Fragment中拦截Back事件,会比较麻烦。方案简介从网上找到了很多方案,但是觉得比较靠谱且用在了项目里,效果很好。 下面介绍下,大致结构如下图所示。
2015-10-04 15:01:34
3801
1
原创 Android WebView 支持H5 DOM Storage
什么是DOM StorageHTML5 是下一代 HTML 标准,开始吸引越来越多人的目光。HTML5 的 DOM Storage 机制提供了一种方式让程序员能够把信息存储到本地的计算机上,在需要时获取。这点和 cookie 相似,区别是 DOM Storage 提供了更大容量的存储空间。 DOM Storage 分为 sessionStorage 和 localStorage。 localSt
2015-10-04 13:11:53
8734
原创 AIDL Android
Android Interface Definition Language(AIDL) Android接口定义语言,Android中,一个进程是无法正常的访问另外一个进程的内容的。 众所周知,Android中用Handler进行线程间的交互,但是进程和线程是不一样的,每个进程CPU都会给他分配一定的内存空间,而每个进程中可能包含一个或者多个线程,所以线程间交互要容易的多。进程间想要通信需要将数据
2015-09-10 12:29:14
465
转载 DiskLruCache
Google提供磁盘缓存类 有条件翻墙的可以看看:https://android.googlesource.com/platform/libcore/+/jb-mr2-release/luni/src/main/java/libcore/io/DiskLruCache.java/* * Copyright (C) 2011 The Android Open Source Project *
2015-09-08 02:20:39
576
原创 Bitmap处理 之四缓存位图
加载一个位图到你的用户界面(UI)是简单,但是有时候情况变得更加复杂,如果你需要加载一组更大的图片。在许多情况下(如与组件,如 ListView, GridView 或者 ViewPager),屏幕上的图像可以来回滚动基本上是没有限制的。 为了避免来回滚动,不断地处理图片,保持流畅,内存和磁盘缓存常常可以在这提供帮助,允许组件快速加载图像。 这里就说说如何使用缓存。内存缓存内存缓存是申请一块的应
2015-09-08 02:18:41
522
原创 Bitmap处理 之三在子线程处理位图
有效地展示大位图,不应该在主UI线程上执行如果源数据从磁盘读取或网络位置(或真正内存以外的任何来源)。加载数据需要的时间是不可预测的,取决于多种因素(阅读从磁盘或网络,速度大小的图像,CPU,等等)。如果其中一个任务阻塞UI线程,系统应用程序没有响应,用户选择关闭。So为了用户体验,通过在后台线程处理位图,这里使用AsyncTask,并且展示如何处理并发问题。使用异步任务(AsyncTask)Asy
2015-09-08 01:10:26
1456
原创 Bitmap处理 之二高效处理大图片
图片有各种各样的尺寸大小,许多情况下都会比需要的要大。比如系统图册显示的手机拍照的照片比你的设备的屏幕密度要高。 由于使用内存有限,最好是在内存中加载一个低分辨率版本。这个分辨率版本应该匹配显示它的UI组件的大小。一个高分辨率的位图没有啥好处,但仍然占用宝贵的内存控件而且带来额外的性能开销。 这篇文章将说如何加载一个更小的图片样本在内存中。读取Bitmap尺寸和类型BitmapFactory类提
2015-09-07 09:44:48
1729
原创 Android Studio 笔记之SexyEditor,设置背景
给自己的编译器设置一个背景,看起来感觉也很高大上,其实做起来也不难。主要用到一个插件SexyEditor。 效果图: 点击Studio File==>Settings 选中Plugins,搜索SexyEditor,如下图所示: 可以选择打开浏览器,下面还有选择安装本地文件。 文件虽然不大,这里需要翻墙。 我已经安装了,所以这里演示一下如何使用,还是在那个Settings窗口,打开O
2015-08-31 00:27:15
3187
原创 Android Studio 笔记之签名设置
前言:之前好不容易弄了个VPN连上下载安装了Android Studio,对于这个工具之前使用感觉一直不怎么样,不过现在Google已经做得很不错了。那么我也开始使用了,有很多不明白的地方,遇到不明白的我都会记录下来,留做自己复习,也可以供大家参考。 问题:使用第三方SDK,很多平台都需要提供SHA1值和包名,每次打包测试,上线总需要修改签名很麻烦,如果能将自己的签名文件设置成默认签名,直接运行测
2015-08-31 00:08:59
1975
1
原创 Android WIFI 开发
公司之前业务需要,APP内需要实现搜索wifi,连接wifi等操作。在网上找了很多资料,终于做了出来,现在提取出来部分功能写成demo,和大家分享。先看图: 下面来看看主要wifi操作代码WifiAdmin.java: PS:这个名字我看网络上都用,我也用了。使用的WifiManager类,其中的创建热点部分被隐藏了,可以用反射实现热点功能。配置WifiConfiguration进行连接时,无密
2015-08-19 01:16:09
1034
原创 AppStoreDemo
公司提的需求,在App中嵌入一个App下载模块,支持下载,安装,暂停,继续等操作。 使用的是Xutils框架,现在把这个功能提取出来了。 关于Xutils:http://blog.youkuaiyun.com/hello_12413/article/details/47032131 项目:https://github.com/SunnyLine/AppStoreDemo 页面不多,一共三,一个App列表
2015-07-24 02:20:00
538
原创 Xutils框架
Xutils是一款非常优秀的开源框架,现在我的项目都是在这个框架上再次封装开发项目的。 使用必须申请两个权限:<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />Xutils
2015-07-24 02:09:13
984
原创 AlarmManager 定时提醒
之前写了一个AlarmManager+Service的轮询Demo,今天写个AlarmManager的新用法,定时器,说白了就是设置一个闹钟。 原理:设置一个定时器,到了定是时间,系统会发出广播,我们自己接收处理就OK了。 Demo:http://download.youkuaiyun.com/detail/hello_12413/8876463 效果图: 以下是代码部分:MainActivity.ja
2015-07-07 15:46:38
902
原创 ViewPager+Fragment 选项卡
总结了之前用的Fragment+ViewPager,做的选项卡功能,今天做个Demo.Demo下载:http://download.youkuaiyun.com/detail/hello_12413/8873827效果如图所示:主要代码如下所示:package com.example.viewpagerdemo;import java.util.ArrayList;imp
2015-07-06 17:19:32
700
原创 解决Fragment 重复加载,刷新问题
之前写东西用的是fragment,但是每次replaceFragment再回来,都会重新执行onCreateView等函数,特别蛋疼。看到网上的说法,用saveinsatance,但是好像不靠谱,后来把变量写成了全局变量。但是遇到个问题Fragment使用灵活,真心不错。后来在网上见到了解决方案,经过实验确实可行。代码如下:@Override public View onCrea
2015-05-28 15:36:12
5346
2
smack_4_0_2.zip
2014-08-15
openfire_3_9_3.zip
2014-08-15
ASP.NET开发典型模块大全(光盘)
2013-05-02
json-lib-2.2.3-jdk15及其支持包
2015-08-03
使用xutils无法更新ProgressBar
2015-09-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人