![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
王富贵王富贵王富贵
一个卑微的打工崽,新时代农民工
展开
-
Android 项目编译问题(gradle)
android 编译问题解决原创 2022-09-13 12:09:31 · 836 阅读 · 0 评论 -
Android 主线程与子线程区分和实践
前言对于学过java或者Android的都知道,在代码中主线程不能进行耗时操作,子线程不能更新UI,比如在自定义view时,想要让View重绘,需要先判断当前线程到底是不是主线程,然后根据判断结果来决定到底是调用 invalidate() 还是 postInvalidate() 方法. 如果当前是主线程,就调用 invalidate()方法;而如果当前是子线程,就调用 postInvalidate() 方法,注意:子线程中不能调用 invalidate() 方法,否则就会报异常,提示我们不能在子线程中更新原创 2022-02-17 15:49:00 · 2791 阅读 · 0 评论 -
Android 屏蔽第三方SDK权限
不多说上代码添加 tools:node=“remove” <!-- 解决安卓11以及以上无法读取第三方应用包名问题--> <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" tools:node="remove"/>原创 2022-01-05 11:24:46 · 3808 阅读 · 0 评论 -
Android 判断是否安装此应用(解决Android12和Android11获取不到已安装的所有应用列表)
Android 判断是否安装此应用(解决Android12和Android11获取不到已安装的所有应用列表)原创 2021-12-31 19:10:24 · 8076 阅读 · 1 评论 -
Android 动态创建Fragment(可根据服务端下发的title动态创建)
不废话先上代码应该都能看懂1.创建fragment类public class FragmentTest extends Fragment { TextView mTxtNumber; int mPosition; String mTitle = ""; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceSta原创 2021-06-23 11:43:37 · 626 阅读 · 0 评论 -
Android 修改成model依赖
/*apply plugin: 'com.android.library'android { compileSdkVersion 29 buildToolsVersion '29.0.2' defaultConfig { minSdkVersion 19 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRu原创 2021-03-22 10:50:23 · 336 阅读 · 0 评论 -
Android 华为平行视界适配(左右分屏)判断悬浮,展开,折叠
因为现在有好多折叠屏手机手机厂商推出了品行视界,也就是左右分屏在左面屏幕不发生改变的情况下降下一个页面放到有面可以左右一起看,在我们点击有面页面的时候有面的首个页面就回跑到左面,右面的第二个页面就有在右面其实适配很简单首先在清单文件添加 <meta-data android:name="EasyGoClient" android:value="true" />然后如果有播放器的可以看需求添加这个这个厂商官方的说明是magicWindow双原创 2020-12-22 14:35:12 · 8718 阅读 · 13 评论 -
Android 适配刘海屏(沉浸式改变状态栏颜色与透明状态栏含Android6.0以下适配)
上代码/** * Created by Android Studio. * ProjectName: ---- * Author: HongYu () * Create date: by Baron on 2020/12/1 10:42 AM * Last modified by YanTao () * Last modified date: by Baron on 2020/12/1 10:42 AM * \ ----------------------------------------原创 2020-12-01 12:13:09 · 1294 阅读 · 0 评论 -
Android 视频播放器JieCaoVideoPlayer使用(防今日头条视频预加载)
上代码依赖 compile 'fm.jiecao:jiecaovideoplayer:4.8.3' compile 'com.github.bumptech.glide:glide:3.7.0' compile 'com.zhy:base-adapter:3.0.3' <!-- 联网权限 --> <uses-permission android:name="android.permission.INTERNET" />注意的是在AndroidManifest原创 2020-11-27 13:05:03 · 4312 阅读 · 3 评论 -
Android 多图选择器PictureSelector 使用
权限 <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission原创 2020-11-24 12:22:48 · 8713 阅读 · 21 评论 -
Android 多图上传后将图片进行九宫格展示
不多说上代码public abstract class NineGridAdapter { protected Context context; protected List list; public NineGridAdapter(Context context, List list) { this.context = context; this.list = list; } public abstract int getCou原创 2020-11-18 11:55:34 · 673 阅读 · 0 评论 -
java 去重
package com.wd.myapplication;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.widget.Toast;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { private原创 2020-11-09 19:30:23 · 121 阅读 · 0 评论 -
Android RecyclerView滑动冲突
import android.content.Context;import android.support.annotation.NonNull;import android.support.annotation.Nullable;import android.support.v7.widget.RecyclerView;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.Vie转载 2020-11-06 15:12:18 · 461 阅读 · 0 评论 -
Android 单利模式(分类解析)
静态内部类public class Singleton { public Singleton(){} private static class Singlentoninstense{ private static final Singleton INSTANCE=new Singleton(); } public static Singleton getInstance(Context context){ Toast.makeTe原创 2020-11-02 13:45:08 · 352 阅读 · 0 评论 -
Android 集成微信登陆不走回调onResp
上代码 <activity android:exported="true" android:launchMode="singleTop" android:name=".wxapi.WXEntryActivity"//一定要在wxapi这个包下创建微信的WXEntryActivity android:theme="@android:style/Theme.NoDisplay" />至于微信登陆调用我就不说了 网上一堆还有就是因为我们在调用微信登陆的时候需要进行debug调试但原创 2020-10-27 12:05:30 · 874 阅读 · 0 评论 -
Android retrofit2结合rxjava2结合okhttp3 网络框架 包含多图上传 @RequestBody入参等
首先是代码依赖 implementation 'com.squareup.okhttp3:okhttp:3.10.0' implementation 'com.facebook.fresco:fresco:1.13.0' implementation 'com.google.code.gson:gson:2.8.5' implementation 'com.facebook.fresco:animated-gif:1.13.0' implementation 'com原创 2020-10-26 14:06:02 · 331 阅读 · 0 评论 -
Android 给Glide设置圆形显示并且添加圆边
依赖 implementation 'com.github.bumptech.glide:glide:4.9.0'代码 Glide.with(this).asBitmap() .load(newPath) .apply(RequestOptions.bitmapTransform(new CircleCrop())) .transform(new GlideCircleWithBorder(this, 2, Color.parseColor("#ffffff"))) .into(pi原创 2020-10-23 12:51:01 · 947 阅读 · 0 评论 -
Android 解决base64 报错无法运行
//这个是base64源码因为在Androidx会出现无base64包或者缺东西的现象实用他就对了/* * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. *//* * Copyright 1999-2002,2004 The Apache Software原创 2020-10-21 19:47:12 · 1181 阅读 · 1 评论 -
Android xutils上传文件
依赖 implementation 'org.xutils:xutils:3.5.0'代码 public void voiceDatas(ViewHold viewHold, ChatMessage chatMessage) { RequestParams params = new RequestParams(Urls); params.setAsJsonContent(true); List<KeyValue> list = ne原创 2020-10-13 14:10:32 · 267 阅读 · 0 评论 -
android 获取众多数据中json值
代码 String extra = chatMessage.getMessage().getContent().getUserInfo().getExtra(); JSONObject jsonObject = null; try { jsonObject = new JSONObject(extra); String sl = (String) jsonObject.get("sl"); list.a原创 2020-10-13 14:02:21 · 392 阅读 · 0 评论 -
Android 随机数工具类
代码public class RandomUntil { /** * 生成一个0 到 count 之间的随机数 * * @param endNum * @return */ public static int getNum(int endNum) { if (endNum > 0) { Random random = new Random(); return random原创 2020-10-13 13:57:41 · 368 阅读 · 0 评论 -
Android 网络请求okhttp简单封装
依赖: implementation 'com.squareup.okhttp3:okhttp:3.12.6'代码:只封装了git方法和post方法和put与delete一样所以就没有封装有需求的可以自己封装package com.example.downloadupdates;import android.os.Handler;import android.os.Message;import java.io.IOException;import okhttp3.Call;i原创 2020-10-13 13:54:50 · 467 阅读 · 0 评论 -
Android 首页实时浮窗(动态设置Margin)以及本人体验inflate的各种坑(方式广播重复绘制)
首先在我们日常开发中会经常遇到给某某页面添加一个实时的浮窗(给你一个开始时间与结束时间,点击叉号第二天再展示),时间判断这里就就不说了以前的博客里面有,那么我们就需要添加一个布局了我的一开始是怎么做的 本人错误1.直接插入布局 如果数据不是实时也无所谓,但是数据是实时的,就会出现一个问题就是,在前后台切换时第二次切换回来广播通知展示但是点击事件会出现无效的现象(本人推测可以能是需要添加一个容器来addview)View inflate = LayoutInflater.from(getActivi.原创 2020-09-24 15:42:02 · 489 阅读 · 0 评论 -
Android 获取当前时间(时间比较是否是今天)
package com.sina.FloatingwindowHelper;import android.annotation.SuppressLint;import android.text.format.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.T原创 2020-09-22 10:53:14 · 1255 阅读 · 0 评论 -
Android 广播状态传递解决冲突
很多时候我们都会遇到不兼容的问题或者数据不能同步更新的问题从而就出现来一个叫bug的东西,使用广播来进行状态值传递,还有一种情况就是这个页面不进行初始化就不能进行数据同步这样数据不同步的话就会出现bug,接下来就是使用广播传值,判断比较这个值进行页面跳转,首先是传递值的页面我们要注意的是虽然不需要在清单文件注册但是需要设置一个action并且接受值与传递的action一定要一致不然会接收不到值正确例子例如:(传递) Intent intent = new Intent(ACTION);//这个是传递原创 2020-09-11 18:51:29 · 326 阅读 · 0 评论 -
Android 切换夜间模式
刚刚突然想弄一个夜间模式所以我开始了首先Android默认是白天模式也就是正常模式的values文件所以,我们要创建一个夜间的文件夹values-night 在里面添加colors.xml注意里面颜色的name需要与正常的values的name一致这样才能自动切换访问(相当于不同分辨绿的mipmap-xhdpi放入多套图一样的道理)这个是正常模式下的colors.xml<?xml version="1.0" encoding="utf-8"?><resources>原创 2020-09-08 11:22:05 · 1359 阅读 · 0 评论 -
Android Service后台下载 广播(Eventbus)通知并展示
因为好多项目都会用到比如后台下载apk,下载图片,音视频,这个时候就需要我们用Service进行后台下载了,首先讲一下我的思路一个简单的service后台图片下载展示,我需要创建一个service并注册注意不要忘记注册 在service里面重写onCreate开启一个工作线程做耗时工作 @Override public void onCreate() { // 开启一个工作线程做耗时工作 HandlerThread thread = newHandlerThrea原创 2020-09-07 13:11:16 · 810 阅读 · 0 评论 -
Android 广播BroadcastReceiver网络WIFI监听是否开启网络是否可以用(广播相互监听)
根据wifi来吐司记录终于合适了前几天遇到这么一个需求就是在看视频的时候会出现关闭wifi的时候,因为视频是一个耗费流量比较大的功能所以需要提醒用户,但是不可能用户每次打开视频的时候都要流量提示这样对于用户不太友好所以每次开启wifi显示一次(当前是流量数据,可能会消耗您的流量),这个时候就需要但是只显示一次下一次还要这就需要sp(SharedPreferences)来记录是否已经吐司过弹出条件就是当Wi-Fi关闭的时候进行监听判断数据是否可用,这就需要两个广播进行相互监听(单独一个有限制)注意的是W原创 2020-09-04 14:38:33 · 692 阅读 · 0 评论 -
Android 监听wifi是否开启
不多说了上代码注意⚠️要添加权限: <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />private void initData() { //获取wifi管理服务 wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);原创 2020-09-03 11:23:36 · 975 阅读 · 0 评论 -
Android 多图上传压缩图片
package util;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Color;import android.media.ExifInterface;import android.net.Uri;import android.os.Environment;import android.t原创 2020-08-31 13:11:08 · 244 阅读 · 0 评论 -
Android 请求网络出现 CLEARTEXT communication to api.tianapi.com not permitted by network security policy
首先感谢 原作者的分享这个是链接今天遇到 CLEARTEXT communication to api.tianapi.com not permitted by network security policy(网络安全策略不允许与(软件)进行明文通信)起因就是我弄了一个接口在一个新建的项目里面跑出现这个问题,一开始我还以为是我的网络请求框架出了问题或者是我的参数出现了问题但是并没有 我很自信的跑了起来但是就是不出现数据,我打印了一下error 的日志,不知道啥意思,然后我就百度了一下,醍醐灌顶可能是 项目原创 2020-08-28 14:32:45 · 2137 阅读 · 0 评论 -
android Activity ForResult回调传值
接收回调的页面//点击按钮进行startActivityForResult,进行跳转并携带requestCodelistView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {原创 2020-08-27 14:41:41 · 333 阅读 · 0 评论 -
android Listview 浏览位置
我用的是假数据进行的测试这个位置记录是我想起在我上一家工作的时候的一个需求(bug)上代码:bean类上就要上全套public class Base { private int iconId;//对应图片资源id private String title; private String time; public Base(int iconId, String title, String time) { this.iconId = iconId;原创 2020-08-27 11:16:15 · 160 阅读 · 0 评论 -
Android Intent的setClass和setClassName的区别
setClass目的是跳转到与该工程下的(同一个Application中的)activity或者service;而setClassName则是跳转到不同Applicaiton的activity或者service原创 2020-08-26 18:57:36 · 998 阅读 · 0 评论 -
Android WebView交互带缓存与网络判断
package com.example.casts;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.Bundle;import android.util.Log;import android.view.Key原创 2020-08-26 15:08:52 · 494 阅读 · 0 评论 -
Android 动态广播实现简单的网络判断
先上整体代码public class MainActivity extends AppCompatActivity { private NetworkChangeReceiver networkChangeReceiver; private IntentFilter intentFilter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(sav原创 2020-08-26 14:31:20 · 342 阅读 · 0 评论 -
android 四大组件之BroadcastReceiver
首先需要创建一个广播接收者public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //接收广播 String config = intent.getStringExtra("config"); Toast.makeText(context,conf原创 2020-08-26 13:55:29 · 128 阅读 · 0 评论 -
Android 多图上传压缩算法
/** * 质量压缩方法 * * @param image * @return */ private static Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos);原创 2020-08-26 10:37:20 · 140 阅读 · 0 评论 -
Android SharedPreferences 记录第一次
他有什么用 ?首先 SharedPreferences 是一个轻量级的存储框架 比较强大 ,在我们日常开发中经常会遇到登陆的时候记住密码账号,还有对新用户只展示一次这种需求:@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/*** 创建文件canfig,实例化Shared原创 2020-08-25 11:39:27 · 148 阅读 · 0 评论 -
java 三目运算符解析
首先 感谢原作者的高质量文章https://www.cnblogs.com/yjd_hycf_space/p/7881345.html一些简单的分支结构可以使用简单的运算符来代替:if(a<b){ min=a;}eles{ min=b}可以用下面的运算符号来处理min=(a<b)?a:b其中(a<b)?a:b 表示a<b为真那么表达式取a的值否则取b的值:条件运算符由“?”和“:”组成,要求有三个操作对象,所以他叫三目运算符他的一般形式为表达式1?表达原创 2020-08-25 11:25:01 · 501 阅读 · 0 评论