
小技巧及知识点
文章平均质量分 63
加顿墨鱼
既然来这里写博客了,写的代码就尽量方便大家引用,尽量将代码简单引用化。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
桌面快捷方式图标显示问题
1:addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, bm2); 改为2:addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bm2); 使用EXTRA_SHORTCUT_ICON_RESOURCE的话bm2必须为ShortcutIconResource对象。第一种方式,如果不是传Sho...原创 2018-09-25 11:08:20 · 1088 阅读 · 0 评论 -
android GoogleMap画导航线路图 路径规划
最近一个项目要给老外用,用的googlemap,做一些小demo:Google Mapandroid版和IOS版的SDK都没有集成路径规划的相关API,若要实现,只能通过http链接请求URL,携带起点终点经纬度,得到返回集合,在地图中展示。 Google Directions API :https://developers.google.com/maps/documentat转载 2017-11-06 20:27:15 · 5634 阅读 · 1 评论 -
okhttp提交请求body,json或者图片的方式
最近的后台接口要求:1、post请求,带参数,请求body提交json。2、post请求提交图片,带参数,表单形式提交图片。与常规请求参数要求不同,记录一下。原理:将post参数拼接到url中,json或者表单在添加的时候注明头文件。0、public static OkHttpClient sOkHttpClient = new OkHttpClient.Builder原创 2017-11-06 20:01:08 · 12729 阅读 · 0 评论 -
android平台解决找不到sun.misc.BASE64Enocder的问题
java.long.NoClassDefFoundError: sun.misc.BASE64Encoder在与服务器端交互时,服务器端采用sun.misc.BASE64Encoder加密后,Android端找不到这个API。其API在jdk 1.6下的rt.jar中,有45.6M之巨大。我们需要使用则需要将其源码抽取出来单独放到客户端。http://files.c原创 2017-11-06 19:50:15 · 2579 阅读 · 1 评论 -
viewpager设置子item宽度
有需求要显示viewpager多个子item,一般推荐在父控件设置子控件超出可见,但是这样的viewpager必须留两边的位置出来,给子item显示,滑动范围就变小了。下面还有一种方法,无需设置其他,在PagerAdapter中添加方法:@Overridepublic float getPageWidth(int position) { return 0.3333f;}原创 2017-08-15 15:52:20 · 2883 阅读 · 0 评论 -
android 一键添加QQ群 的实现步骤
1.浏览器访问QQ群网页 http://qun.qq.com/join.html2.登陆自己的账户3.复制Android代码:[java] view plain copy* * @param key 由官网生成的key qq群号码* @return 返回true表示呼起手Q成功,返回fals原创 2017-08-07 11:08:38 · 3264 阅读 · 0 评论 -
仿购物车点击图片,沿着抛物线加入篮子动画
这里提供核心方法,流程便是:listview列表监听事件,获取点击的图片控件,传入以下方法中。方法流程:创建移动控件,获取传入控件坐标,获取目标控件位置,用path绘出贝塞尔曲线路径。用属性动画,移动控件改变位置。方法如下:private void addToCarAnimation(ImageView goodsImg) { //获取需要进行动画的ImageV原创 2017-08-18 10:15:48 · 1103 阅读 · 0 评论 -
android 键盘修改回车键监听及无效处理,imeOptions无效处理
注意如果android:imeOptions=””属性设置后,发现回车键没有改变,则必须设置Android:singleLine=”true”一、android 软件盘事件响应在android中,有时需要对EditText实现软件盘监听的场景。当android按下软键盘的时候,响应完成、发送、搜索或者其他事件。Google 提供了 EditorInfo、KeyEvent 的原创 2017-08-18 09:26:19 · 3183 阅读 · 0 评论 -
解决listview与SwipeRefreshLayout滑动冲突问题
在向上滑动时不会有影响,但是在下拉刷新时,不论listview在什么位置都会触发SwipeRefreshLayout刷新。所以需求是:在listview处于顶部时才触发SwipeRefreshLayout下拉刷新。解决方法如下:listView.setOnScrollListener(new OnScrollListener() {@Overridepublic void onS原创 2017-07-24 11:54:57 · 381 阅读 · 0 评论 -
汉字混淆,取代原先默认的字母混淆。
汉字混淆实现方法:1、新建一个txt文本,如proguard_dic.txt,将这个文件cp到主工程目录下。2、打开混淆配置文件,如不作修改则是proguard-rules.pro。将-optimizations对应的一行前面加#注释掉,再添加一行为-obfuscationdictionary proguard_dic.txt3、打开proguard_dic.txt,逐行添转载 2017-07-24 09:35:27 · 1039 阅读 · 0 评论 -
RecyclerView滑动时item显示出现控件显示不全
子item包含3个控件,在滑动时,最下方的控件居然消失了,其他两个正常。分析:应该是绑定子item时的根view问题。经测试多种方法,在子item布局多套嵌一层跟布局可解决此问题:如图是会出显示不全bug的布局:xmlns:android="http://schemas.android.com/apk/res/android" android:lay原创 2017-08-07 17:50:30 · 2086 阅读 · 0 评论 -
AS打包jar简洁方法,aar文件生成方法
最近一个简单需求,自定义view,要做成一个jar,以方便引用,(没有使用到资源文件),如果有使用到资源文件,推荐生成aar文件;打包的方法及过程如下:1、首先创建一个Module选择library,获取将当前的项目设置apply plugin: 'com.android.library';2、在build.gradle中增加以下配置:task makeJar(type:原创 2017-07-06 18:14:09 · 1008 阅读 · 0 评论 -
View点击过快导致事件多此触发,全局解决
需求:View的点击事件经常是发起业务,但是没做限制的话,快速点击会导致多次调用,发送错误逻辑。有一种办法是点击了之后设置控件不可点击,待业务完成再恢复点击能力,但是这样每个点击控件都要进行相关的设置,量很大。所以我想了个方法,自定义一个布局,设置点击间隔时间,继承相对布局,然后把有点击事件的控件外包裹这个布局,调用点击的地方使用自定义布局的点击事件便可,方法代码如下:布局文件:原创 2017-05-19 11:03:18 · 381 阅读 · 0 评论 -
安卓App压力测试 - Monkey的使用
Monkey是安卓开发工具包SDK自带的一个命令行工具,可用于安卓App的压力测试,其原理是通过命令行向手机发送随机事件的指令,随机事件包括点击,划屏和输入等操作,这些操作都是随机不可控的,可控的是需要操作的App,每次操作间隔的时间以及随机事件的次数等。Monkey的使用步骤是:安卓手机装好待测App,跟电脑连接,或者从SDK中打开安卓模拟器打开命令行,输入adb start-s转载 2017-07-06 16:09:58 · 716 阅读 · 0 评论 -
调用第三方地图导航,高德、百度、谷歌,无需引用sdk
先判断是否存在地图,存在就可以进入导航,没有的话就默认进入市场下载app,代码如下:i1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new AlertDialog.Builder(mContext).setSingleChoi原创 2017-06-27 11:48:07 · 5641 阅读 · 0 评论 -
省市区选择,数据源,json格式,比较全。
{"city": {"福建省": ["福州市","厦门市","莆田市","三明市","泉州市","漳州市","南平市","龙岩市","宁德市"],"西藏自治区": ["拉萨市","昌都地区","山南地区","日喀则地区","那曲地区","阿里地区","林芝地区"],"贵州省": ["贵阳市","六盘水市","遵义市","安顺市","铜仁地区","黔西南布依族苗族自治州","毕节地区","黔东南苗族原创 2017-07-05 15:54:13 · 12583 阅读 · 0 评论 -
自定义view中 case MotionEvent.ACTION_DOWN:No such instance field:
自定义view中发现事件到这一步,并且不会下发到move中,断点测试发现这个提示默认的: return super.onTouchEvent(event);解决方案 return true;原创 2017-07-04 15:12:28 · 649 阅读 · 0 评论 -
webView loadData 中文乱码问题快速解决(API提供的标准用法不可行)
使用 loadData方法是中文部分会出现乱码,即使指定“utf-8”、“gbk”、“gb2312”也一样。 webView.getSettings().setDefaultTextEncodingName("UTF -8");//设置默认为utf-8// webView.loadData(data, "text/html", "UTF -8");//API提供的标准原创 2017-11-07 08:55:39 · 336 阅读 · 0 评论 -
PopupWindow小坑:无论偏移多大,不会跑出屏幕。 充满显示上方空间
需要做一个需求,在控件点击后,PopupWindow弹出显示在它的上方,要求覆盖上方所有的位置。思路如下:获得控件的Y坐标值,将PopupWindow的高度设置为Y的绝对值,PopupWindow显示位置会减去状态栏的高度,因此PopupWindow的高度还需要减去状态栏高度。showAtLocation方法的第一个参数随便输入一个view没关系,Gravity可选TOP,x=0,y=Po原创 2017-10-12 16:07:25 · 1966 阅读 · 0 评论 -
BottomNavigationView多个子项取消缩放效果
BottomNavigationView在超过3个以上子项时,显示成选择项放大,未选缩放的效果,不适合菜单导航,需要固定大小取消缩放。采用反射方法,如下:在初始化后调用方法: bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation); //默认 >3 的选中效果会影响V...原创 2018-03-14 17:12:02 · 3831 阅读 · 1 评论 -
安卓2.3版本生成so相关
转载自http://blog.youkuaiyun.com/wb175208/article/details/70155239;图文非常详细,可操作。1.创建一个工程,注意一定要勾选上这个Include C++ Support 2.一路点击 【next】点击到最后的时候,采用默认就好了: 3.点击【finish】之后,会报错:NDK not configured转载 2018-01-18 09:56:23 · 350 阅读 · 0 评论 -
网络数据加密3DES与RSA结合使用及注意点
在项目工程中,有时候需要对网络传输的数据进行加密。有多种方式,本文使用3DES与RSA加密结合使用。基本流程如下:1、假设客户端获取了用户名与密码,需要传给服务器;本文使用RSA工具类生成公钥月私钥,公钥用于客户端加密,私钥用于服务端解密。 String content="用户名+密码";2、自定义3DES加密密钥和向量: // 密钥 ,至少24位 private原创 2018-01-17 14:44:57 · 2061 阅读 · 0 评论 -
微信小坑:更换applicationId,微信WXPayEntryActivity多渠道打包配置问题。
网上这方面的介绍基本查不到,索性自己做测试,得到结论:微信支付和登陆共享,可以支持applicationId修改。安卓微信支付开发中,需要在微信后台配置包名,取得是applicationId的值,并不是配置清单中的package。但是有时候需要修改applicationId以便测试或者多渠道打包,这时候WXPayEntryActivity在清单文件中的配置就得相应改变。方法是:根据ap原创 2017-12-13 16:55:06 · 4648 阅读 · 7 评论 -
webview长截图与短截图+滑动控件ScrollView长截图保存在本地
需求里需要进行控件的截图,webview试了多种方法不行,最后找到一种稳定的方法。以下代码分:短截图,长截图,保存在本地如下:webview长截图在5.0以上手机请先添加此方法:@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState)转载 2017-11-24 15:29:46 · 707 阅读 · 1 评论 -
安卓文件存储权限管理三种目录
由于安卓6.0更新了权限管理,使用最新的SDK编译的时候,缓存到自定义的目录下出现问题,因为没有获取对应的权限,6.0以前的系统不需要获取权限,最快的方式是使用官方推荐的缓存地址(不推荐)public static String PATH = Environment.getExternalStorageDirectory().getAbsolutePat转载 2017-12-04 14:10:15 · 9192 阅读 · 0 评论 -
webview支持H5中的选择图片方法
开发中有个需要,H5中有需要选择图片上传的功能,刚开始以为H5会自己搞定,查了资料才发现需要安卓原生做一些工作,代码如下:public class ModifyingPersonalActivity extends BaseTitleActivity { private WebView mWebView; private ValueCallback mUploadMess转载 2017-12-02 15:15:24 · 3267 阅读 · 3 评论 -
如何批量重命名照片,但是去掉那个烦人的括号
1、首先把照片全部选中,然后右键选择一张,选择重命名,这里注意,直接将原来照片名删除即可,不需要输入任何字符(或者输入你自己喜欢的名称),之后,照片就被重命名为这种形式了 (1).jpg, (2).jpg, (3).jpg,.........2、将如下代码拷贝到任一个记事本文件里面,将记事本后缀改为.bat,注意一定是真正的后缀是.bat,有的人改完之后是.bat.txt,这样是没有原创 2017-11-22 19:54:19 · 22246 阅读 · 5 评论 -
WebVie Posturl方式网页不正常问题解决
采用WebVie Posturl方式,所传递的参数有可能会出现空格,+号等字符的错误,需要进行UTF-8转码,处理如下:1.参数加密,并去除空格。String encryptedCcbParam = DESTool.encode(s1).replaceAll("\\s*", "");2.通过utf-8编码,并将+\转化为可识别的字符。encryptedCcbPara原创 2017-12-08 16:58:26 · 799 阅读 · 0 评论 -
安卓java时间格式化字母对照
字母 日期或时间元素 表示 示例G Era 标志符 Text ADy 年 Year 1996; 96M 年中的月份 Month July; Jul; 07w 年中的周数 Number 27W 月份中的周数 Number 2D 年中的天数 Number 189d 月份中的天数 Number 10F 月份中的星期 Number 2E 星期中的天数原创 2017-12-08 15:36:01 · 334 阅读 · 0 评论 -
安卓okhttp网络封装
项目用到okhttp,需要进行封装以便调用。难点在于请求体的多种类型有的采用表单,有的采用json,有的是文件。代码如下:public class OkHttpManger { public static OkHttpClient sOkHttpClient = new OkHttpClient.Builder() .addInterceptor(原创 2017-11-14 15:59:00 · 361 阅读 · 0 评论 -
安卓网络请求封装--Android-Async-Http
最近项目需要封装统一的网络请求,因为后台数据的返回不确定性,决定进行最基础的封装,统一返回String,gson解析自行处理。采用Android-Async-Http框架。碰到的问题有:1、body要求为json而非表单形式,还有json+参数的请求体。2、Android-Async-Http框架未知原因闪退。代码如下:public class AsyHttpManger {原创 2017-11-14 15:54:22 · 514 阅读 · 0 评论 -
Android Webview 和Javascript交互调用
在Android的开发过程中、遇到一个新需求、那就是让Java代码和Javascript代码进行交互、在IOS中实现起来很麻烦、而在Android中相对来说容易多了、Android对这种交互进行了很好的封装、我们可以很简单的用Java代码调用WebView中的js函数、也可以用WebView中的js来调用Android应用中的Java代码。案例主要包含了: Html中调用Andro转载 2017-11-14 15:10:20 · 395 阅读 · 0 评论 -
webview无法吊起H5中的弹窗问题
解决方法:如果是fragment,必须使用getactivity()上下文,不能用全家上下文,否则无法弹窗。原创 2017-11-17 18:30:18 · 1557 阅读 · 0 评论 -
DES加密工具类,用于网络参数加密
public class DESTool { // 密钥 ,至少24位 private final static String secretKey = "78c5davff03a8ddb2fd921f5@747/c#" ; // 向量 private final static String iv = "ff2a535c" ; // 加解密统原创 2017-11-11 11:23:06 · 467 阅读 · 0 评论 -
String清楚所有的空格
String s1=s2.replaceAll("\\s*", "");原创 2017-11-11 11:17:11 · 377 阅读 · 0 评论 -
安卓大图显示不OOM方案,极简代码,实现拖动、缩放等功能
之前加载大图,都用的仿鸿洋大神的加载方案,并自己实现触摸控制拖动。这里提供第二种思路,使用webview,更简洁,而且控件本身可以实现拖动、缩放多种功能,无需自己写view事件了。代码如下:首先在资源文件assets中加入qm.jpg图:代码:public class LargeImageActivity extends AppCompatActivity { priv原创 2017-06-13 12:37:10 · 387 阅读 · 0 评论 -
安卓巨图加载及触摸拖动浏览,仿鸿洋大神使用BitmapRegionDecoder。
在加载大图的时候经常会OOM,因此找了资料,鸿洋大神的这篇用的最好:http://blog.youkuaiyun.com/lmj623565791/article/details/49300989使用了BitmapRegionDecoder的相关方法,只显示需要显示的部分,并且封装了一个手势控制的类。我本人技术不高,对手势控制的封装类用起来有些吃力,所有自己写了个用touch控制的拖动方法,以便新手都原创 2017-06-13 12:24:27 · 688 阅读 · 0 评论 -
图片按指定比例缩放并压缩至指定大小,解决保存图片文件体积过大bug。
需求:服务器指定图片尺寸大小,并且限制图片文件大小,因此在选择图片后需要进行操作保存图片的时候,会发现实际文件大小大于当前设置的大小,这个问题在最后面解决;原创 2017-06-12 10:35:18 · 5290 阅读 · 0 评论 -
简单方法保持屏幕常亮
有个需要:在用户打开应用时,希望保持屏幕常亮,不进行自动息屏和锁屏操作。方法如下:在操作的activity中加入一行代码:protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.c_原创 2017-03-23 17:32:48 · 4185 阅读 · 0 评论 -
activity仿造底部弹框
用activity来制作底部弹框分两步走:第一步:设置activity透明;第二步:设置activity切换动画;代码如下:第一步:<activity android:name="c.CCBAActivity" android:theme="@style/Theme.Transparent">也可以自定义透明背景需要背景透明,状态栏透明:原创 2017-03-30 11:11:40 · 676 阅读 · 0 评论