android开发代码
chinaboyliusir
这个作者很懒,什么都没留下…
展开
-
Android:Json数据转换成Map
本文利用Gson来做实现,先导入:implementation 'com.google.code.gson:gson:2.8.6'主要利用的是JsonObject里的entrySet()方法,相关Demo代码如下:import com.google.gson.Gson;import com.google.gson.JsonElement;import com.google.gson.JsonObject;import java.util.HashMap;import java.ut原创 2021-02-26 20:56:58 · 1813 阅读 · 0 评论 -
利用Glide为固定宽高的ImageView设置圆角图片
在开发项目时,列表的描述图片大多会以一种固定宽高的模式出现,有时应需求我们会将ImageView的scaleType属性设置为centerCrop,如果需要展示圆角图片,我们可以利用Glide来作实现。实现类GlideActivity,基础代码如下:import android.os.Bundle;import android.widget.ImageView;import androidx.appcompat.app.AppCompatActivity;import com.bumpte原创 2020-11-20 15:27:43 · 923 阅读 · 0 评论 -
Android点亮屏幕功能
应用在涉及音视频播放功能时可能需要点亮屏幕,此文把点亮屏幕相关工具类和使用类的代码贴出来,若有问题欢迎指正!工具类:WakeLockUtil,相关代码如下:public class WakeLockUtil { /** * 点亮屏幕 * * @param timeout The timeout after which to release the wake lock, in milliseconds. */ @Nullable pu原创 2020-07-03 16:43:01 · 3607 阅读 · 1 评论 -
Android WebView加载完成的监听
在项目里有时会需要监听WebView加载完成的状态,可能有人会使用WebViewClient里onPageFinished这个方法来监听,可是这个官方的方法到现在还是不稳定,有些能监听到,有些则不能。本人做法是使用WebChromeClient里onProgressChanged这个方法来监听,相关代码如下:public class WebViewUtil { @SuppressLint("SetJavaScriptEnabled") public static void loa原创 2020-06-18 16:55:02 · 5126 阅读 · 0 评论 -
LinearLayout子控件实现底部对齐功能
此功能主要利用LinearLayout里面的属性gravity="bottom"来实现,相关子控件包括ImageView,EditText及TextView,需要注意的对TextView要做特殊处理,就是在其外层再包裹一层LinearLayout,相关代码如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"原创 2020-06-08 18:01:56 · 2983 阅读 · 0 评论 -
Android Studio利用BuildConfig获取版本名和版本号
以前我们基本都是利用PackageManager来获取版本名和版本号,在Android Studio下我们可以利用BuildConfig来获取版本名和版本号,代码如下: /** * 获取版本名 */ public static String getVersionName() { return BuildConfig.VERSION_NAME; } /** * 获取版本号 */ public static i原创 2020-05-14 17:47:57 · 3805 阅读 · 0 评论 -
Android获取软键盘高度
本文获取软键盘高度利用View里getWindowVisibleDisplayFrame (Rect outRect)方法,根据当软键盘弹出时所影响的outRect底部值bottom的偏差值来判断,现以为使bottom产生变化的有软键盘,虚拟导航键2种,所以区分此2种变化即可获取软键盘的高度,这里用了一个估计值,就是大于屏幕高度的1/4就以为是软键盘高度。取1/4这个比例主要还是考虑兼容全面屏,具...原创 2019-12-18 16:00:17 · 984 阅读 · 0 评论 -
WebView去除系统植入广告
在开发项目时用WebView加载网页,开启JS功能后,发现在手机上打开网页上偶尔会弹出一些小广告。我的解决方案为修改userAgent,处理后发现小广告不见了相关部分关键代码如下:private WebView webView;String userAgent = webView.getSettings().getUserAgentString();if (!Text原创 2017-12-15 11:51:41 · 1875 阅读 · 2 评论 -
Android Paging library的本地数据Demo
分页库属于架构组件(Architecture Components)的一部分,配合RecyclerView使用,主要用来实现无感分页加载。官方文档链接为:https://developer.android.google.cn/topic/libraries/architecture/paging本文参照官方文档来做一个简单的实现,主要分以下几步:1、导库:def support_...原创 2018-08-09 14:53:10 · 693 阅读 · 0 评论 -
Android 9 Pie:http及https的网络连接问题
最近在将应用运行在Android 9设备上时,发现http网络请求没有任何的响应。官方资料在框架安全性变更提及,地址为:https://developer.android.google.cn/about/versions/pie/android-9.0-changes-28默认情况下启用网络传输层安全协议 (TLS)如果您的应用以 Android 9 或更高版本为目标平台,则默认情况下...原创 2018-09-18 17:15:08 · 14755 阅读 · 3 评论 -
Android带分隔符的输入手机号码的EditText
当用户输入手机号码时,有些应用为了界面更加优美,要求输入的手机号带上分隔符,一般为344型的手机号码,本文为封装了带分隔符的输入手机号码的自定义SeparatorPhoneEditText。运行效果截图如下: 代码如下,注释在代码里:import android.content.Context;import android.support.v7.widget.AppCompat...原创 2018-10-04 17:21:48 · 1610 阅读 · 0 评论 -
Android直播聊天之图文混排式TextView
在看某些直播时,会发现我们发送的聊天信息呈现的样式还是很利用空间的,此文做了相关界面的实现,截图如下:Activity里实现主要涉及自定义Drawable和自定义DrawableSpan,并配合SpannableStringBuilder,代码如下:TextView textView = findViewById(R.id.textView);String userFlag = "...原创 2018-10-24 11:59:59 · 2277 阅读 · 0 评论 -
纯色图片颜色渐变动画
纯色图片颜色渐变动画的实现,主要有两点:1、纯色图片颜色的改变,使用的方法为ImageView里的setColorFilter(intcolor);2、动画使用ValueAnimator,配合相应的颜色TypeEvalutor。代码实现如下:public class ImageActivity extends AppCompatActivity { private原创 2017-12-22 10:25:27 · 1264 阅读 · 1 评论 -
带进度条的通知栏Notification
在版本迭代时下载新版本的时候有些APP展示带进度条的通知栏,对用户而言感觉更为友好,以下是在Activity里的简单实现.截图如下:代码如下:import android.app.Notification;import android.app.NotificationManager;import android.os.Bundle;import andro原创 2016-12-26 17:18:24 · 1213 阅读 · 1 评论 -
TextView展示Html内可点击图片
在使用Html.fromHtml(String source)时如果源字符中包含图片里并不会展示出来,需要我们另作处理,本文并参照LinkMovementMethod增加图片点击事件,切图如下:代码如下,如有不对之处欢迎指正import android.graphics.drawable.Drawable;import android.os.Bundle;import原创 2016-08-26 14:39:11 · 1015 阅读 · 0 评论 -
okhttp3基础使用的封装
Android开发在网络请求这块有一个有名的开源框架okhttp,在https://github.com搜索okhttp即可看找到,具体地址为:https://github.com/square/okhttp。根据文档提示在Android Studio下只需配置 compile 'com.squareup.okhttp3:okhttp:3.2.0'(目前_2016/4/27来说如此),然后即可原创 2016-04-27 16:05:01 · 5819 阅读 · 2 评论 -
OrmLite数据库框架的集成及使用
因项目要用使用到数据库来存放一些数据,使用SQLite时来做则显得比较麻烦,后来就选择封装OrmLite来做为数据库的框架.第一步:集成jar包到项目 到官网http://ormlite.com/releases/去下载相应的core和android一共两个jar文件集成到项目.第二步:创建相应javaBean,类Article代码如下:import com.j原创 2016-05-10 17:18:17 · 858 阅读 · 0 评论 -
SoundPool播放音频资源
使用SoundPool播放音频资源,我写在Activity里的一个方法,相关的注释我直接从官网http://developer.android.com/reference/android/media/SoundPool.html里copy了此文目的就是提供此方法,调用就能直接播放音乐,当然在实际使用还得跟据情况作相应的优化,代码如下:private void playRight原创 2016-05-12 10:33:52 · 712 阅读 · 0 评论 -
圆形头像带描边的工具类
在开发APP时,有些应用会涉及个人中心之类,此时用户头像有部分会被设计成圆形来展示,一般来说头像生成是用户通过拍照或从相册里选择后再通过裁切而成。这个图片或存于APP或上传服务器,还有一种情况应用已经有web端而用户可能在web端已经上传了,在显示是通过BitmapFactory.decodeFile("文件路径")或BitmapFactory.decodeStream(InputStream)方原创 2016-05-04 11:10:50 · 2061 阅读 · 0 评论 -
shape的对应的代码写法
在界面设置时,我们很多时候需要给控件加上圆角或边颜色的效果,一般来说我们可以设置其background为一个shape类型的drawable即可实现,类似代码如下:LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.co原创 2016-06-04 09:38:28 · 3290 阅读 · 0 评论 -
使用getLocationInWindow或getLocationOnScreen获得View在屏幕中的坐标
在View提供了两个方法这样的方法,我们可以利用它们来获得View在屏幕中的坐标:/** * <p>Computes the coordinates of this view in its window. The argument * must be an array of two integers. After the method returns, the array ...原创 2016-07-12 10:15:54 · 5721 阅读 · 2 评论 -
欢迎引导页面的滑动进入
在用户首次进入或升级时在欢迎页面一般情况下都会加入一个引导的页面,当滑动到最后一个页面时点击或向右滑动时就能进入主页面,实现代码如下:public class WelcomeActivity extends Activity { private final int[] imageIDs = new int[]{R.mipmap.guide_image_01, R.mipmap.g原创 2016-07-13 11:27:12 · 828 阅读 · 0 评论 -
android自定义字体样式
关于assets的位置,我这里提一下,android studio切换到Project模式,依次点开app\src\main,点击main文件夹右键新建文件夹assets就OK了关键代码就是:Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/roboto.ttf");textView.setTypeface(typeface);需要注意的是:fonts前面是不需要/的,如果写成"/fonts/roboto.t原创 2016-07-15 10:22:18 · 828 阅读 · 0 评论 -
三角形的自定义View
在项目的弹窗页有倒三角形指示的设计图,如下:最方便的做法就是要求切一张倒三角的图出来,我这里用的代码实现方法,先自定义一个三角形TriangleView,代码如下:import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.原创 2016-06-27 10:18:45 · 2057 阅读 · 0 评论 -
修改TextView中部分文字颜色的方法
在实际项目中有一张关于回复的设计图如下:里面文本颜色是有变化的,因此封装一个修改TextView中部分文字颜色的方法,如下:public static SpannableStringBuilder getSpannable(String reply, String content, int colorID) { SpannableStringBuilder builder原创 2016-06-22 10:31:43 · 772 阅读 · 0 评论 -
当服务端为PHP时Android端的RSA加密
这是实际项目里封装的一个工具类,代码如下:import android.util.Base64;import java.security.KeyFactory;import java.security.PublicKey;import java.security.spec.X509EncodedKeySpec;import javax.crypto.Cipher;pub原创 2016-08-30 16:41:17 · 852 阅读 · 0 评论 -
ViewPager滑动跟随的指示器
比较简单的一个滑动跟随的指示器,本文只是实现了标签的宽度不超过屏幕宽度的情况,根据标签的文字宽度来调节指示器的宽度,效果图如下:指示器的主要实现是一个自定义的View,代码如下:public class TabView extends View { private String[] names; private float tabHeight; priv原创 2016-08-24 17:38:26 · 1264 阅读 · 1 评论 -
用注解来省略findViewById
在写项目的时候,在引入XUtils后,有一个类ViewUtils,在Activity加入ViewUtils.inject(this),就可以直接View及其子类加上注解就可以省略多行findViewById的操作.本文是仿这个使用的代码实现,共两个类几十行代码,注释我放入到代码里第一个注解类:ViewInject,为的是成员变量与资源ID有所关联,代码如下:import java.原创 2016-04-12 10:08:26 · 981 阅读 · 0 评论