Android开发
我爱写程序
不积跬步,无以至千里。
不积小流,无以成江海。
展开
-
NFC读取写入简单使用
适用于无加密普通NFC卡片数据读取写入原创 2021-03-12 17:02:22 · 6476 阅读 · 0 评论 -
adb常用命令及环境变量配置
adb工具配置和常用命令原创 2020-08-20 11:45:33 · 1410 阅读 · 0 评论 -
Android SDK版本号和名称对应表
平台版本 SDK版本 版本名称 简写 10.0 29 Q(10) Q 9.0 28 Pie(派/馅饼) P 8.1 27 Oreo(奥利奥) O 8.0 26 Oreo(奥利奥) O 7.1 25 Nougat(牛轧糖) N 7.0 24 Nougat(牛轧糖) N 6.0 23 Marshmallow(棉花糖) M原创 2020-08-10 17:59:23 · 1479 阅读 · 0 评论 -
手机屏幕密度转换工具类
public final class DensityUtils { /** * DisplayMetrics * * @return */ public static DisplayMetrics getDisplayMetrics() { return ResUtils.getResources().getDisplayMetrics(); } /** * 根据手机的分辨率从 dp 的单位 转成为 px(原创 2020-07-14 16:53:38 · 163 阅读 · 0 评论 -
Android开发中的异常汇总
Android开发中的异常汇总原创 2020-07-14 15:18:54 · 110 阅读 · 0 评论 -
TextView设置Html内容
在TextView中设置Html内容只需要使用Html.fromHtml(text)方法,并在字符串中添加Html标签。1、在字符串中添加Html标签。String text = "这个<font color='#ff0000'><big>大</big></font>字<font color='#0000ff'>颜色</font>很好看";2、使用Html.fromHtml(text)方法格式化。textView.setTex原创 2020-07-14 15:15:02 · 928 阅读 · 1 评论 -
TextView设置格式化字符串
需求:TextView中设置字符串为:“一年级有50人”,人数需要动态变化,不能以拼接字符串的形式实现。1、在string.xml中设置<string name="person_count">一年级有%1$d人</string>2、在java代码中设置数值textView.setText(getString(R.string.person_count,50));...原创 2020-07-14 11:59:13 · 528 阅读 · 0 评论 -
RectF用法
自定义控件的时候经常会遇到需要画弧线、话矩形。 这就要用到RectF方法。先解释一下RectF的几个属性RectF.left 矩形左上角的x坐标。RectF.top 矩形左上角的y坐标。RectF.right 矩形右下角的y坐标。RectF.right 矩形右下角的y坐标。使用方法public class MyView extends View { private String TAG = "MyView "; private int mRadius;原创 2020-07-13 17:48:52 · 3228 阅读 · 2 评论 -
PopupWindow 弹出背景半透明设置方法
需求:PopupWindow 在弹出的时候需要设置背景为半透明状态,写个简单的工具类,方法如下:public class MainActivity extends AppCompatActivity { private PopupWindow mPop; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);原创 2020-07-13 17:48:29 · 1307 阅读 · 0 评论 -
Glide加载Https地址不显示原因
在使用Glide加载网络图片时,遇到Https的地址会加载不出来,是因为需要SSL验证,忽略掉SSL验证方法如下。1、在gradle中增加okhttps依赖库implementation("com.github.bumptech.glide:okhttp3-integration:4.0.0" ) { exclude group: "com.android.support" }2、定义一个类继承AppGlideModule类,并且使用@GlideModule注解@Glide原创 2020-07-13 17:48:02 · 2337 阅读 · 4 评论 -
忽略HTTPS请求通过SSL加密方法
在Android开发中经常会遇到接口做了SSL加密,但是在前端又不需要使用SSL加密,这就需要忽略掉加密验证。只需在再Application中执行如下方法即可。private void ignoreSSL() { try { final TrustManager[] trustAllCerts = new TrustManager[]{ new X509TrustManager() {原创 2020-07-13 17:47:35 · 1593 阅读 · 0 评论 -
ConstraintLayout 布局详解
ConstraintLayout 布局详解简介约束布局ConstraintLayout 是一个ViewGroup,可以在Api9以上的Android系统使用它,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。从 Android Studio 2.3 起,官方的模板默认使用 ConstraintLayout。优点在开发过程中经常能遇到一些复杂的UI,可能会出现布局嵌套过多的问题,嵌套得越多,设备绘制视图所需的时间和计算功耗也就越多,ConstraintLayout使用起原创 2020-07-08 11:44:15 · 7425 阅读 · 0 评论 -
ScrollView中嵌套RecyclerView滑动卡顿解决办法
ScrollView中嵌套RecyclerView,滑动时会有卡顿的现象,解决方法如下:LinearLayoutManager layoutManager = new LinearLayoutManager(this);layoutManager.setAutoMeasureEnabled(true);mRecyclerView.setLayoutManager(layoutManager);mRecyclerView.setHasFixedSize(true);mRecyclerView.set原创 2020-07-02 11:07:22 · 368 阅读 · 0 评论 -
Android开发keyStore的配置
Android开发keyStore的配置将生成的keystore文件保存在项目更目录下配置keystore路径和密码方式一、在build.gradle中直接配置keystore密码signingConfigs { config { keyAlias 'test123' keyPassword 'test123' ...原创 2020-03-27 16:15:40 · 3656 阅读 · 0 评论 -
Android使用grade命令打包配置
Android使用grade命令打包配置1、再build中配置buildTypesbuildTypes { release { shrinkResources true zipAlignEnabled true signingConfig signingConfigs.config ...原创 2020-03-27 15:42:27 · 1019 阅读 · 0 评论 -
Git配置和使用过程中出现的问题
Git配置和使用过程中出现的问题1.进入到GIT目录2.配置账号3.设置密钥使用命令ssh-keygen获取密钥 在本地电脑路径中找到公钥,添加至github中,如图:4.初始化本地仓库5.关联远程仓库6.添加远程仓库到本地7.更新代码异常处理1.git pull的时候出现一些异常,是因为本地仓库和远程仓库没有关联导致的,可以使用命令:$ git branch ...原创 2019-01-25 18:13:48 · 302 阅读 · 0 评论 -
Java、Android 常用正则表达式
Java、Android 常用正则表达式原创 2019-03-27 10:30:51 · 452 阅读 · 0 评论 -
卫星位置画法
画出卫星在天体中的位置,如下图 activity_satellite.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" androi原创 2017-02-17 17:33:06 · 3276 阅读 · 1 评论 -
Activity设置横屏时候EditText 遮挡页面,重新弹出输入框 解决办法
Activity设置横屏时候EditText 遮挡页面,重新弹出输入框 解决办法在EditText属性中添加:android:imeOptions="flagNoExtractUi"原创 2019-01-23 21:19:29 · 519 阅读 · 0 评论 -
一份超全超详细的 ADB 用法大全
转载来自https://blog.csdn.net/u010375364/article/details/52344120ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。持续更新中,欢迎补充指正,觉得有用的可以将 此 GitHub 仓库 Star 收藏备用。注:有部分命令的支持情况可能...转载 2018-08-21 11:04:55 · 547 阅读 · 0 评论 -
UTC时间和当地时间转换
UTC时间:协调互联网纾时,又称互联网纾标准时间,为加特林威治标准时间的新名,避免惟独彼方的感觉。简称UTC,从英文“Universal Time, Coordinated”来。本地时间: 本地时间 = UTC + 时区差转换方法:/** * UTC时间 ---> 当地时间 * @param utcTime UTC时间 * @param utcTimePatten原创 2017-03-21 16:04:10 · 8941 阅读 · 0 评论 -
天地图在Android上的简单应用
天地图是由国家地理信息测绘局出的,以jar包的形式提供各种地图服务和数据,如地图展示、标注、定位等等。下面介绍几种简单的用法。 一、集成步奏 1、导入jar包 将API文件tiandituapi.jar拷贝到工程根目录下,并在工程属性->Java Build Path->Libraries中选择”Add External JARs”, tiandituapi.jar,确定后返回,这样您原创 2017-02-24 14:47:39 · 6252 阅读 · 11 评论 -
WGS84、GCJ02、BD911坐标相互转换
1、WGS84和BD911坐标相互转换使用百度地图API,代码如下: /** * WGS84坐标转换BD911坐标 * 利用百度地图Api转换 * @param longitude * @param latitude * @return */ public static LatLng WGS84ToBd911(double原创 2017-02-28 14:44:13 · 5149 阅读 · 0 评论 -
ScrollView中嵌套ListView或GradView只显示一行解决方法
这种问题是因为ListView中的onMeasure方法没有测试实际的高度,我们只需重写该方法,设置AT_MOST模式支持最大的高度即可。 实现代码如下: 该方法是解决GradView问题,ListView同理。public class ScrollGridView extends GridView { public ScrollGridView(Context context) {原创 2017-02-27 17:50:32 · 367 阅读 · 0 评论 -
Eclipse转Android Studio的一点建议
在网上找的很多转换的例子,从Eclipse直接导入AS,这种方法试了很多次都不成功,最后用最笨的方法,copy文件。 1、创建一个AS项目,和Eclipse项目的包名保持一致。 2、Copy src文件至AS下的java文件下。 3、Copy 资源文件至Res文件下。 4、Copy图片至drawable下的文件至mipmap对应的目录下。 注意:drawable-hdpi对应mip原创 2017-02-14 17:58:10 · 388 阅读 · 0 评论 -
安卓开发SHA1获取方法、安卓百度地图开发Release版本地图无法显示
在debug版本下可以显示地图,在Release版本下无法显示地图可能是在申请百度地图秘钥key值时申请使用的SHA1值相符引起的。debug版本的SHA1可以在elipse中直接查看到,Release版本SHA1值查看方法:1、使用DOS命令工具进入到keystore所在的目录。2、使用命令keytool -list -v -keystore **.keystore查看SHA1值,密码为你的ke...原创 2016-11-10 21:06:31 · 727 阅读 · 1 评论 -
Webservice开发使用ksoap2.jar包在小米2S报jar包冲突解决方案
ksoap2.jar和小米系统中的jar包冲突,修改ksoap的包名即可。原创 2016-11-10 21:32:27 · 297 阅读 · 0 评论 -
Android Studio端口5037被占用无法连接手机,解决方案。
1、使用doc命令netstat -aon|findstr "5037"查看该端口被哪一个程序所占用。如下所示,查看出的占用该端口的程序的PID号是1524.2、在Windows资源管理器中找到PID是1524的程序。3、结束该进程。4、如果是360手机助手占用该端口,无法停止360手机助手进程。可能是360安全卫士自我保护导致,需要进行如下操作。(1)在360设置原创 2016-11-22 10:16:22 · 4741 阅读 · 1 评论 -
十进制经纬度格式转换度分格式
一般从GPS终端获取的经纬度都是十进制格式的,再我们日常说的东经多少度,北纬多少度即度分格式的转换。/** * 解析经纬度 * @param lnglatString * @return */ private static double formatLnglat(String lnglatString){ if("".equals(ln原创 2017-03-21 16:08:24 · 4662 阅读 · 0 评论 -
Android项目合并总结一(项目转换)
项目要求:现有两个完整项目A、B,需要合并成一个项目C。经过查找资料后决定使用,将A、B打成library,创建一个项目C,以类库的形式调用这两个项目。将项目转成library需要注意事项: 一、转换方法。 1、使用Android Studio将项目以model形式导入。 2、选择项目中的app目录。 3、注意这里会出现一个警告,是由于model项目的名字和主项目中的app目录冲突原创 2017-03-14 16:17:49 · 2287 阅读 · 2 评论 -
Android项目合并总结二(jia包冲突解决方案)
续项目合并一 当A和B中的有相同的jar包时,在build的时候会有冲突异常。如下: 解决方法: 在gradle中修改dependencies中引用jar包的属性。 将compile修改为Provided,修改次属性后只在该library中有效,其他的model中不会引用到。 如果以上方法还不能解决,请使用如下方法。 创建一个model,将所有的jar包全放入该model中,再在其他原创 2017-03-14 16:36:28 · 904 阅读 · 0 评论 -
常用开源框架集合
**一、图片加载库**1. glideGlide支持抓取、解码和显示视频静态、图像和动画gif。Glide包含一个灵活的API,允许开发人员插入几乎任何网络堆栈。默认情况下,Glide使用基于HttpUrlConnection的自定义堆栈,但也包括插入到谷歌的Volley项目或Square的OkHttp库中的实用程序库。Glide的主要重点是使滚动任何类型的图像列表尽可能平滑和快速,...原创 2018-07-19 11:31:20 · 1220 阅读 · 0 评论 -
Android开发Intent工具类
public class IntentUtils {/** 通过Class跳转界面 **/public static void startActivity(Context context, Class<?> cls) { Intent intent = new Intent(); intent.setClass(context, cls); context.startAct原创 2017-09-18 16:52:52 · 737 阅读 · 0 评论 -
安卓开发基类BaseActivity、BaseApplication
1、baseActivity (抽象类)public abstract class BaseActivity extends AppCompatActivity{ protected abstract int layoutId(); protected abstract void initView(); protected abstract void initData();原创 2017-09-18 16:18:49 · 2159 阅读 · 0 评论 -
ListView、GrideView通用适配器
1、baseAdapterpublic abstract class BaseCommonAdapter<T> extends BaseAdapter { protected LayoutInflater mInflater; protected Context mContext; protected List<T> mDatas; public BaseCommonAd原创 2017-09-18 16:13:50 · 444 阅读 · 0 评论 -
transformClassesWithJarMergingForRelease异常处理方法
这个异常主要是再AS中编译打包的时候jar包冲突异常,在项目中有连个相同包名的jar包。 处理方法: 1、找到重复的jar包删除。 2、使用其他的jar包替换。 3、修改该jar包的名字。修改方法参考:http://blog.csdn.net/st526403649/article/details/69266907原创 2017-04-05 17:38:06 · 2027 阅读 · 0 评论 -
jar包 包名修改
1、下载工具 jarjar.jar工具。 下载地址:http://download.csdn.net/detail/st526403649/9804319 2、在jar包目录下创建txt文件,输入一下内容rule pattern resultzap patternrule com.github.mikephil.** com.ynmapchart.@1修改该jar包下的com.g原创 2017-04-05 17:32:11 · 2237 阅读 · 0 评论 -
Android SQLite数据库版本升级原理解析
Android使用SQLite数据库保存数据,那数据库版本升级是怎么回事呢,这里说一下。一、软件v1.0安装v1.0,假设v1.0版本只有一个account表,这时走继承SQLiteOpenHelper的onCreate,不走onUpgrade。1、v1.0(直接安装v1.0)二、软件v2.0有2种安装软件情况:1、v1.0 –> v2.0 不走onCreate,走o转载 2017-04-11 17:44:05 · 314 阅读 · 0 评论 -
Gradle多版本打包
项目需求:一个项目相同的业务逻辑,要求打出不同版本的包,每个包的包名不相同。原创 2017-02-10 11:16:04 · 673 阅读 · 1 评论