Android
LakeSideHu
记录工作中遇到的问题和解决方法
展开
-
Android自定义Dialog,去掉Dialog自带的样式
Android自定义Dialog,去掉Dialog自带的样式原创 2022-12-30 17:50:43 · 295 阅读 · 1 评论 -
TabLayout+ViewPager+Fragment实现顶部导航+处理tab下划线长度和选中tab的字体粗细
TabLayout+ViewPager+Fragment实现顶部导航+处理tab下划线长度和选中tab的字体粗细1. 先写布局<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" a.原创 2021-12-14 17:20:58 · 2271 阅读 · 2 评论 -
Messenger 传递 List对象以及遇到的问题
Messenger 传递 List对象假设需要传递的List对象为:List<MyData> list = new ArrayList<>();类 MyData 的定义为:public class MyData implements Parcelable { public int id; public String name; public MyData(int _id, String _name) { this.id = _id.原创 2021-11-29 15:08:06 · 2156 阅读 · 0 评论 -
无需任何自定义,一个布局搞定仿微信支付宝密码框
全网太多的密码输入框的实现方案,基本上都是自定义之类的。看起来还是挺麻烦,冥思苦想,想出了一种简单方案,一个布局就搞定。布局如下;<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="473px" android:layout_height="2...原创 2021-01-26 14:35:16 · 310 阅读 · 1 评论 -
start Activity慢和finish Activity慢的原因
现有两个Activity, ActivityA和ActivityB.1. 先说startActivity慢 假如从ActivitA跳转到ActivityB很慢,大概5秒或更长, 两个Activity的生命周期大概是这样的: ActivityA: onPause()....然后等几秒后才执行onStop() 这几秒钟在干吗呢? 在执行ActivityB的onCre...原创 2020-05-05 16:55:25 · 3213 阅读 · 0 评论 -
android studio使用android annotations注解
其实我觉得并没有什么卵用,为了了解依赖注入学习下这个。1. 在project/build.gradle中添加以下内容: buildscript { repositories { jcenter() //注解 mavenCentral() } dependencies { classpath 'c...原创 2020-05-05 11:08:08 · 439 阅读 · 0 评论 -
inSampleSize优化Bitmap
/** * 对图片进行解码压缩。 * * @param resourceId 所需压缩的图片资源 * @param reqHeight 所需压缩到的高度 * @param reqWidth 所需压缩到的宽度 * @return Bitmap */private Bitmap decodeBitmap(int resourceId, int reqHeight, int re...原创 2020-04-29 11:43:42 · 447 阅读 · 0 评论 -
android 获取不同res下的资源id
import android.content.Context;import java.lang.reflect.Method;public class Rs { private static Context mContext; public static Context getContext() { if (mContext == null) ...原创 2020-04-28 19:08:03 · 288 阅读 · 0 评论 -
android实现带下划线的密码输入框
现在很多app的密码输入框,都采用微信、支付宝等密码输入框的样式。还有一种就是每个密码字符下面带有一条下划线的样式。仿微信、支付宝网上搜了下有很多demo,但是带下划线的不多,或者讲的比较复杂,都是自定义什么的。这两天正好要做个这样的东西,研究了一下,感觉没那么麻烦,不需要各种自定义。我的思路是:1). 布局中定义一个edittext, 全透明,输入的字符大小为0sp, 这样用户就看不见。不能...原创 2020-04-21 20:47:37 · 1908 阅读 · 0 评论 -
Android studio用Android.mk编译so
在main目录下新建jni目录jni目录主要放c/c++文件和mk文件在main目录下新建jniLibs目录jniLibs目录主要放编译出来的so文件,如果有不同架构的so,jniLibs目录下面还需要新建相应架构的子目 录,如 armabi-v7a, x86两个架构。jniLibs||–armabi-v7a||–x86在jni目录下新建几个文件jni||–An...原创 2020-01-04 18:17:47 · 2261 阅读 · 0 评论 -
build.gradle记录
apply plugin: 'com.android.application'def inputParm = project.hasProperty("oem") ? oem : "";def signFile = "${rootDir}/hisi.keystore";if (inputParm.equalsIgnoreCase("ABC")) { signFile = "${r...原创 2019-12-07 21:22:45 · 155 阅读 · 0 评论 -
gradle替换AndroidManifest中的属性变量
项目中我有多个activity想设置为启动的Activity,也就是设置成MainActivity,需要在Manifest中对activity配置:<intent-filter> <action android:name="android.intent.action.MAIN"/> ......</intent-filter>如果每次编译版本都去手动修改的...原创 2018-07-06 11:40:43 · 3250 阅读 · 0 评论 -
Android: requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
1.最近在SDK6.0开发项目组遇到一个这样的问题:requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()2.原因:从6.0(api 23)开始, android采用了Runtime permission request, 即在运行时请求权限,而不是在编译的时候,即使在manifest.xml里面添加原创 2016-09-26 11:49:27 · 17082 阅读 · 2 评论 -
按home键后,再次打开app,闪桌面背景图标
今天遇到一个奇怪的问题,在按Home回到桌面后,再从桌面打开app,会闪一下桌面背景的所有app图标。虽然解决了,但不知道什么原因引起的,感觉应该是app的样式导致的,但是把所有样式都去掉后,还是会闪。网上也有各种说法,比如设置启动样式为一张背景图。或者说去掉<item name="android:windowIsTranslucent">true</item>或...原创 2019-04-29 21:14:40 · 450 阅读 · 0 评论 -
Android读取手机上的多媒体文件
public class MediaBrowserUtil{ private static final String TAG = MediaBrowserUtil.class.getSimpleName(); private static List<String> videoFormatList = new ArrayList<>(); sta...原创 2019-04-15 15:30:10 · 769 阅读 · 0 评论 -
设置gridview的每个item大小相同
DisplayMetrics dm = new DisplayMetrics();((Activity) mContext).getWindowManager().getDefaultDisplay().getMetrics(dm);int height = dm.heightPixels ;convertView.setLayoutParams(new ViewGroup.LayoutP...原创 2018-12-28 17:05:29 · 787 阅读 · 0 评论 -
Groovy调用sqlite
1. 线下载最新的sqlite-jdbc-3.15.1.jar包,可以到这里下载:http://download.csdn.net/detail/likesidehu/96760622. 把jar包导入工程后就可以使用了.3.简单实现代码:def initSQLite() { def sql = Sql.newInstance("jdbc:sqlite:sample.db"原创 2016-11-08 11:48:10 · 977 阅读 · 0 评论 -
Android Studio 去掉Instant Run, rebuild project,运行apk报内存溢出
1. 由于5.0以下的版本不支持Instant Run,所以APK运行在4.x版本或更低版本时会报错,于是在studio里面去掉Instant run选项rebuild project后运行工程报了这个错2. 解决方法:1)打开工程下的gradle.properties文件2)在文件中添加以下内容:org.gradle.jvmargs=-Xmx2048m -XX:MaxPerm原创 2016-09-30 10:42:35 · 909 阅读 · 0 评论 -
Android: java.lang.NoSuchMethodeError: xxx.xxx.checkSelfPermission
1. 最近在6.0 SDK上开发项目,apk安装在4.2手机上运行的时候遇到了这个问题。2. 原因:6.0在请求权限时,用了checkSelfPermission这个方法,而6.0以下的版本的Context里没有这个方法,只有checkPermission,所以报错3. 解决方法:如果是6.0以下则可以不需要请求权限在Manifest.xml里定义了即可,所以在代码中需要添加版本的判断原创 2016-09-30 10:34:28 · 876 阅读 · 0 评论 -
android 拍照获取原图上传到服务器
最近做android拍照上传图片到服务器,遇到拍照后获取的图片被旋转的问题。百度了一些资料,加上自己研究了一天终于得到解决。1. 调用系统照相机private originalImagePath = null;private void callCamera() {// call the system Camera//普通做法//Intent cameraInte原创 2016-10-24 09:47:58 · 3534 阅读 · 1 评论 -
android 用Parcelable传递图片等复杂数据类型
这是我13年在eoeandroid上发的文章,由于eoe改版导致代码找不到了,搬到csdn来做个备份1. activity_main.xml//主界面布局只有一个button,用来跳转到另外一个activity xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_par原创 2016-10-20 12:14:17 · 1824 阅读 · 0 评论 -
Android上传图片和文字到服务器
1. 首先到Appache官网下载第三方jar包httpmime(我本地有一个跟下面代码能保持一致,最新的jar不适合以下代码。但不知道怎么上传jar)2. 服务器地址: http://localhost:8080/xxx/xxx/xxx3. 本地图片地址/sdcard/Pictures/abc.png4.具体代码:private class UploadTask extend原创 2016-10-12 10:29:57 · 2796 阅读 · 0 评论 -
Android JSON解析
1. Android JSON解析简单实现,JSON内容如下: private static final String jsonStr= "{ "contacts":[ {"id":"c200", "name":"Baron hu"原创 2016-09-22 15:34:08 · 387 阅读 · 0 评论 -
Android调用系统相机和相册添加图片到
1. android 调用系统相机的方式:Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(cameraIntent, 1);2. 在onActivityResult中处理图片protected void onActivityResult(原创 2016-09-21 11:46:22 · 735 阅读 · 0 评论 -
Android Studio:Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication
1. 最近用android studio开发项目的时候遇到了这个问题,google了很久,加上自己的修改解决了这个问题:2. 报错log: Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication: java.lang.ClassNotFoundException: Didn原创 2016-09-21 12:00:43 · 1961 阅读 · 0 评论 -
解决ViewPager.serCurrentItem滑动页面不顺滑问题
在调用viewpager.setCurrentItem(item, smoothscroll)方法的时候,把smoothscroll设为true,但还是感觉不顺滑,有种跳的感觉。解决这个问题需要自定义ViewPager.public class MyViewPager extends ViewPager {public MyViewPager(Context context) {sup原创 2016-06-17 14:29:22 · 1191 阅读 · 0 评论 -
获取桌面壁纸作为App背景
最近做app领导要求所有app都要用桌面壁纸来作为app的背景图。于是写了以下代码来实现:这样做当然是可以,但是发现背景图会被严重压缩,跟桌面上的壁纸效果相差太大。用各种压缩,拉伸,裁剪都不起作用,简直要抓狂啊。后来想,launcher里面既然可以做到,为何不模仿launcher的做法呢?于是查看launcher设置壁纸的源码,发现自定义了一个Drawable:结合原创 2016-04-23 11:59:00 · 3308 阅读 · 0 评论 -
android adb 常用命令
1. adb logcat 查看所有Log信息2. adb logcat -c 清除当前屏的log信息 adb logcat -v time 同时打印时间3. adb logcat -s TAG 过滤标签为TAG的log信息,只看自己想看的Log4. adb logcat > log.log 保存log信息到本地,就是linux重定向命令,有时候log打印很快无法查看可用此方法,...原创 2016-02-20 12:09:04 · 987 阅读 · 0 评论 -
Android通过onTouch事件实现单击,双击,长按
一般采用延时做法。private intmClickcount;// 点击次数private int mDownX;private int mDownY;private int mMoveX;private int mMoveY;private int mUpX;private int mUpY;private long mLastDownTim原创 2017-04-08 12:42:25 · 5498 阅读 · 0 评论 -
android通过反射获取wifi热点ap的ssid和password
通过查看android5.1的源码,其实wifi热点的ssid和password已经在WifiConfiguration的构造方法里面初始化了,但是是hide的api, 第三方开发者调不到。/** copy constructor {@hide} */public WifiConfiguration(WifiConfiguration source) { if (source !...原创 2017-07-17 14:08:25 · 4855 阅读 · 0 评论 -
Android studio: The number of method references in a .dex file cannot exceed 64K. Learn how to resol
报错log: Error:The number of method references in a .dex file cannot exceed 64K. Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html原因: 内存不足导致的,每个apk都有一个d原创 2016-09-21 12:10:48 · 2866 阅读 · 0 评论 -
android NavigationView改变item的背景色
NavigationView布局<android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_width="@dimen/navigationView_width" android:layout_height="match_par...原创 2018-11-04 16:02:03 · 2177 阅读 · 0 评论 -
Dialog中添加EditText, 下面的确定、取消按钮被输入法盖住,以及弹不出输入法的解决方法
Dialog中添加EditText, 下面的确定、取消按钮被输入法盖住,以及弹不出输入法的解决方法private Dialog mDialog;private EditText mRequestLicenseEditText;private TextView tv_input_tips;private Button btn_cancel, btn_ok;Activity中弹出dia...原创 2018-11-09 11:17:47 · 637 阅读 · 0 评论 -
按home键后Activity启动慢的问题
场景:APP中有两个Activity, MainActivity和TestActivity。首先打开MainActivity,然后按home键回到launcher。这是从后台(service)startActivity, 这个过程要等5秒左右,google官网有介绍,从后台startActivity就是会慢5秒。看起来无解,不过stackoverflow有大神提供了解决这个问题的方法:I...原创 2018-10-13 19:41:03 · 1393 阅读 · 1 评论 -
Android通过反射获取热点的状态
源码中,热点的几种状态定义:public static final int WIFI_AP_STATE_DISABLING = 10; public static final int WIFI_AP_STATE_DISABLED = 11; public static final int WIFI_AP_STATE_ENABLING = 12; public static final ...原创 2018-08-07 17:54:53 · 1114 阅读 · 1 评论 -
Android获取wifi的IP地址
public static String getWifiIp(){ WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); if(!wifiManager.isWifiEnabled()) { return null; } WifiIn...原创 2018-07-13 10:27:58 · 1707 阅读 · 0 评论 -
android4.4监听不到USB插拔广播的解决方法
虽然4.4系统已经是很久以前的版本了,市面上也基本上没有4.4系统的手机,平板等设备。但是有的盒子、电视机用的还是4.4的系统,为了满足客户的需求只能去适配。最近遇到一个客户4.4系统插拔USB监听不到Intent.ACTION_MEDIA_MOUNTED广播的问题。查了下资料,再加上自己的一些修改,最终解决了这个问题。1. 新建一个xml文件,命名为:android.hardware.usb.h...原创 2018-07-11 20:59:47 · 2316 阅读 · 0 评论 -
Failed to extract native libraries, res=-2
在工程中如果用了so库,在有的机器上安装apk可能会报这个错误,apk安装不上,报一句:Failure [INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2]出现这个问题的原因是在AndroidManifest.xml中的application标签中加了一句: android:extractNativeLib...原创 2018-06-05 19:37:27 · 11358 阅读 · 3 评论 -
Android通过RSA加密解密实现License
Android通过RSA加密解密实现License 1. linux下用openssl生成RSA私钥和公钥(我是在windows 7下用cygwin生成的)(参考博客: http://blog.csdn.net/chaijunkun/article/details/7275632/) 1)首先确认系统安装了openssl。如果没安装可以使用命令:sudo apt-get insta原创 2018-01-03 00:43:57 · 2360 阅读 · 1 评论 -
RadioButton点击事件不起作用的坑
最近做开发用到了RadioButton, 并自定义了样式,把RadioButton的按钮去掉了,换成了自定义的点击效果,这时候点击看不见是否被选中的效果。于是问题来了,第一次点击没问题,第二次以后点击就失效了。布局是这样的:<RadioButtonandroid:id="@+id/radiobtn"android:layout_weight="1"android:layout_wi...原创 2017-11-03 22:14:24 · 11219 阅读 · 1 评论