Android 进阶
kaolagirl
这个作者很懒,什么都没留下…
展开
-
android中按两次返回键返回桌面或退出程序
实现的基本原理当按下BACK键时,会被onKeyDown捕获,判断是BACK键,则执行exit方法。在exit方法中,会首先判断isExit的值,如果为false的话,则置为true,同时会弹出提示,并在3000毫秒(3秒)后发出一个消息,在Handler中将此值还原成false。如果在发送消息间隔的2秒内,再次按了BACK键,则再次执行exit方法,此时isExit的值已为true,则会执行退出的方法。需求:1. 不退出程序,只是返回桌面public class MainActivity e原创 2021-09-29 15:45:16 · 1730 阅读 · 0 评论 -
android点击跳转前清除任务栈中的所有activity
在跳转前加下面两行代码intent.setFlags(intent.FLAG_ACTIVITY_NO_HISTORY); //当离开该Activity后,该Activity将被从任务栈中移除intent.addFlags(intent.FLAG_ACTIVITY_CLEAR_TASK | intent.FLAG_ACTIVITY_NEW_TASK); //清除任务栈中的所有activity具体使用如下: Intent intent = new Intent(getApplication原创 2021-09-29 13:03:52 · 1385 阅读 · 0 评论 -
Android中实现ProgressBar菊花旋转的动画效果
在一些常见到的加载中需要显示一个加载动画,如旋转的菊花,旋转的圈圈等等动画…,然后我们现在就来说下怎么去试下它吧一.菊花的旋转动画1.新建一个drawable文件在res/drawable下新建一个progressbar_style.xml文件定义一个旋转动画<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/loading_01原创 2021-09-17 10:19:56 · 1187 阅读 · 1 评论 -
android中NestedScrollView嵌套EditText,导致滑动冲突问题
问题描述NestedScrollView内嵌套EditText,出现滑动冲突,导致EditText无法滑动解决方法:重写EditText的触摸监听事件eval_content.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if(event.getAction()=原创 2021-09-13 17:04:45 · 768 阅读 · 1 评论 -
Android全局变量:Application
在android开发过程中,总是需要用到一些贯穿整个应用的变量,即全局变量。然后我们可以通过自定义的Application进行设置。我们的app就是一个application,启动application时,系统会创建一个进程ID,所有的Activity就会在此进程上运行。可以在Application创建时初始化全局变量,同一个应用的所有Activity都可以访问这些全局变量,只需要调用Context的getApplicationContext或者Activity的getApplication方法来获得一个原创 2021-09-02 18:36:38 · 1187 阅读 · 0 评论 -
Android 存储:SharePreferences存储List<Map<String,Object>>类型数组
建一个ToolUtils工具类,然后在里面分别写存和取的逻辑方法public class ToolUtils { /** * setLeftList 设置缓存,存数据 * @param context * @param key * @param list * @author wang 8/31 */ public static void setLeftList(Context context, String key,List<原创 2021-09-02 17:32:23 · 407 阅读 · 0 评论 -
Android中实现微信分享的功能
在android开发中微信分享功能还是经常用到的,比如把文字,图片,网页类型,小程序类型的文件等分享给微信好友,朋友圈等。那么接下来就来说说如何去实现吧一.添加依赖 implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'二. 写一个分享的页面(popup_share.xml)这个是个popupWindow弹窗来着<LinearLayout xmlns:android="http://schema原创 2021-09-02 16:28:59 · 9106 阅读 · 4 评论 -
Android中如何把网络资源图片转化成bitmap
在android项目开发中,实现微信分享功能会涉及图片的分享,但缩略图分享官方仅支持加载本地的bitmap,那么问题就来了,如果是网络图片那要如何操作呢?想法当然是有的,就是把网络资源图片下载到本地并保存成bitmap不就可以了吗?那么如何去实现呢,下面就来说说吧! /** * todo 将网络资源图片转换为Bitmap * @param imgUrl 网络资源图片路径 * @return Bitmap * 该方法调用时要放在子线程中 */ pub原创 2021-09-02 16:26:53 · 5324 阅读 · 1 评论 -
Android开发中微信分享失败之【checkArgs fail, thumbData should not be null or exceed 128kb】
一.问题描述在微信分享功能中, 出现下面这个错误这是图片的问题,微信分享图片大小限制为128kb,超过128KB的图片,会造成微信分享界面打不开(没反应),而且微信不给任何提示,有时候真的很无语。二.解决方法1.微信提供的方法是这样子的private byte[] bmpToByteArray(final Bitmap bmp,final boolean needRecycle){ ByteArrayOutputStream outputStream = new ByteArray原创 2021-09-01 18:56:55 · 924 阅读 · 1 评论 -
Android中如何获取屏幕的分辨率?
一.概念手机屏幕图像的显示都是由一个个的小点组成的,这一个个的小点就称之为像素。 一块方形的屏幕横向有多少个点,竖向有多少个点,相乘之后的数值就是这块屏幕的像素(数码相机的像素也是这么乘积出来的)。但是为了方便表示屏幕的大小,通常用横向像素×竖向像素的方式来表示。二.如何获取1.在activity中方法一: DisplayMetrics dm = getResources().getDisplayMetrics(); int screenWidth = dm.widthPixel转载 2021-08-12 18:52:28 · 2238 阅读 · 0 评论 -
android中RadioButton的setChecked(true)无效或点击状态无反应问题
1.问题描述在RecyclerView 中Item是个RadioGroup,在Adapter中动态添加RadioButton,并通过setChecked为RadioButton设置选中和未选中的状态,中间会通过Adapter的notifyDataSetChanged方法来刷新数据源。当我改变RadioButton的状态或设置setChecked(true)时,一开始是可以的,等我多点击几次后就无效了。2.问题原因是多次调用setChecked(false)出的问题,多次调用后就会导致下次点击不会变为选原创 2021-08-05 18:03:10 · 3547 阅读 · 0 评论 -
Android应用中如何自定义弹框?
在我们应用开发过程中,系统自带的弹框效果不是很好看,所以我们就得自己去自定义,下面就来简单说说吧1.效果2.自定义弹框布局(alert_dialog_defaut.xml)<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" andro原创 2021-08-04 18:19:37 · 2741 阅读 · 3 评论 -
Android中星星评分控件SimpleRatingBar的使用
android自带的RatingBar控件在设置大小上是很难控制的【RatingBar控件的介绍】 下面的话就来说说如何使用SimpleRatingBar开源库去实现星级效果【GitHub查看】一.SimpleRatingBar的属性和方法描述属性/方法设置显示总星数app:srb_numberOfStars/setNumberOfStars(int)设置选中星数app:srb_rating / 设置评级setRating(float)设置步长app:srb原创 2021-08-02 17:40:06 · 1134 阅读 · 0 评论 -
记录TabLayout的一些用法(android)
一.简述TabLayout是Android support中的一个控件android.support.design.widget.TabLayout,Google在升级了AndroidX之后,将TabLayout迁移到material包下面去了com.google.android.material.tabs.TabLayout,原来的support下面的TabLayout从API 29开始就不再维护了。所以如果项目已经升级了AndroidX,建议直接使用后者。TabLayout一般结合ViewPager+原创 2021-07-27 11:38:35 · 696 阅读 · 0 评论 -
TabLayout+ViewPager2的联合使用
在android项目开发中,点击文字标签可以切换到相对应的内容的这种需求还是很常见的,实现效果看下图。下面的话就来介绍下两种方式,第一种的话是我最初的时候自己自定义的,直至发现了TabLayout这个控件,然后就转用了TabLayout+ViewPager2,虽然第一种不用了但还是想把它记录下来。一. 自定义tab标题栏+ViewPager2实现<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"原创 2021-07-26 19:23:22 · 2065 阅读 · 0 评论 -
android之图片选择器ImageSelector的使用
一.ImageSelector是什么?Android图片选择器,仿微信的图片选择器的样式和效果。支持图片的单选、限数量的多选和不限数量的多选。支持图片预览和图片文件夹的切换。支持在选择图片时调用相机拍照,也支持不用打开相册直接调用相机拍照。GitHub二. ImageSelector方法ImageSelector支持图片的单选、限数量的多选和不限数量的多选。还可以设置是否使用相机、是否剪切图片等配置。ImageSelector提供了统一的调起相册的方法。// 单选ImageSelector.b原创 2021-07-23 19:18:13 · 6948 阅读 · 11 评论 -
android中图片压缩上传方法之Luban库
一.Luban是什么?Luban(鲁班) —— Android图片压缩工具,仿微信朋友圈压缩策略。二.使用步骤1.引入依赖 //图片压缩库 implementation 'top.zibin:Luban:1.1.8'2.属性方法方法描述load传入原图filter设置开启压缩条件ignoreBy不压缩的阈值,单位为KsetFocusAlpha设置是否保留透明通道setTargetDir缓存压缩图片路径setCompressL原创 2021-07-23 16:03:12 · 2631 阅读 · 1 评论 -
Android中文字轮播控件TextBannerView控件的使用
现在的很多APP特别是类似淘宝京东等这些大型APP都有文字轮播界面,实现循环轮播多个广告词等功能;这种空间俗称“跑马灯”,而TextBannerView已经实现了可垂直跑、可水平跑的跑马灯了。1.效果图我这里的需求是在首页进行搜索关键字的轮播,上传不了动图,只能看个静图,如下:2.控件属性和方法1、属性AttributesdescribesetInterval文字切换时间间隔,默认3000setAnimDuration动画持续时间,默认1500setTextS原创 2021-07-16 19:06:35 · 1344 阅读 · 9 评论 -
android中使用popupWindow悬浮框与软键盘冲突的问题
一. 问题描述就是我在打开省市区弹框前,如果有软键盘就隐藏后显示弹框,但是当我打开弹框时,软件盘并没有消失并和弹框一起出现顶到上面去,具体看下图。二. 问题尝试从网上找了很多方法,比如下面这条,试了也是没效果,但好奇的就是它如果不在弹窗中是可以关闭的 InputMethodManager inputMsg = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if(inputMsg !=null){原创 2021-07-15 17:03:44 · 994 阅读 · 0 评论 -
Android中RecyclerView如何实现自动换行
在项目中是要经常使用到RecyclerView的,在没写这篇文章之前,我往往都是使用 GridLayoutManager来实现一行显示多个item的布局,但是这种做法是非常不灵活的,因为item的个数是固定的,且不能随着其长短来自动换行,所以今天就来跟大家分享下如何实现自动换行!参考博文【链接】1. 自定义 LayoutManager自定义一个MyLayoutManager类继承于LayoutManager,其代码如下:/** * 自动换行布局管理 * wang 2021/7/12 */p转载 2021-07-12 16:43:56 · 4218 阅读 · 6 评论 -
Android中Intent之是数据的传递
两个Activity中互相传递数据的方法如下:一.简单数据的传递传递单个:可以直接通过调用Intent的putExtra()方法存入数据,然后在获得Intent后调用getXxxExtra获得 对应类型的数据;传递多个:可以使用Bundle对象作为容器,通过调用Bundle的putXxx先将数据 存储到Bundle中,然后调用Intent的putExtras()方法将Bundle存入Intent中,然后获得 Intent以后, 调用getExtras()获得Bundle容器,然后调用其getXXX获原创 2021-06-23 19:22:26 · 230 阅读 · 1 评论 -
Android中拍照(相册中选择)并上传图片功能(包括动态获取权限)
作为新手小白,为了实现这个拍照和相册选取图片并上传功能,确实花费了很多时间,因为实现不容易,所以记录下来,一和大家分享,二为之后学习做个备忘。一.实现效果二. 整体思路Android手机客户端,拍照(或从相册中选择图片),然后上传到服务器。服务器端接收到手机端上传上来的图片并处理后返回把从服务器获取到的图片展示在页面上三. 实现步骤第一步现在清单文件中把需要的权限写上 <!-- 相机--> <uses-permission android:name="an原创 2021-06-23 12:24:45 · 10616 阅读 · 7 评论 -
android中RecyclerView嵌套RecyclerView中,如何为内层RecyclerView设值的问题
RecyclerView嵌套RecyclerView问题在android应用中是很常见的,也是很重要的,话不多说,直接进去主题。一.效果图二. xml文件1.activity页面 (activity_good_evaluation.xml)2.外层item页面 (good_eval_item.xml)3内层item页面 (eval_image_item.xml)三.创建Adapter文件因为这里是两层嵌套,所以要创建两个1.内层Adapter (EvalImageAdapter)原创 2021-06-16 20:03:11 · 2389 阅读 · 5 评论 -
Android中微信支付接入的完整教程来了
在讲解微信支付之前,最重要的也是关键的一点就是一定先把签名配置好,否则后面调不起微信支付界面【查看配置签名】 ,当然,如果你已经弄好了,就开始吧!一.添加gradle依赖在app module目录下的build.gralde中添加dependencies { //微信支付SDK implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'}gralde构建完成之后,再做下一步的操作二.在A原创 2021-06-03 10:17:03 · 7888 阅读 · 6 评论 -
android项目中如何配置签名
在配置签名这块遇到的坑还真不少,网上看到的各种解决方案,说的很多但基本都是一个样,也参考弄了很久,还是没解决,现在我就来跟大家说下我是如何解决的吧:1.第一步首先,在配置签名之前得有一个KeyStore文件(如何生成,这里我就不说了,网上有很多可以参考下),这里就只介绍如何将这个KeyStore文件应用到我们的项目中:2.在Android Stduio中的moudle的build.gradle文件中配置签名信息. keyAlias keystore的aliaskeyPassword Key原创 2021-06-02 19:01:51 · 1190 阅读 · 1 评论