
Android总结
总结Android相关的技术
xiayiye5
我的GitHub地址:https://github.com/yhsh
和 https://github.com/xiayiye5
展开
-
Android开发之获取data/下面的系统目录的方法
老套路看上图再看代码String cachePath = getExternalCacheDir() + "xiayiye.pcm"; String fileCache = getFilesDir().getAbsolutePath(); File codeCacheDir = getCodeCacheDir(); File cacheDir = getCacheDir(); File obbDir = getObbDir();.原创 2022-02-02 00:15:00 · 5701 阅读 · 0 评论 -
Android开发之RecyclerView滑动到底部的监听方法
Kotlin版本recyclerview.addOnScrollListener(object: RecyclerView.OnScrollListener() { override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { super.onScrolled(recyclerView, dx, dy) if (isSlideToBo原创 2021-12-07 21:15:00 · 2380 阅读 · 0 评论 -
Android开发之startActivityForResult过时的替代方案
如上图所示:在api29中提示已过时,官方给出的替代方案是上面第二个红框的方法registerForActivityResult该怎么用呢 ?先看kotlin版本的写法: private val startActivity = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { //此处是跳转的result回调方法 if..原创 2021-09-23 14:00:47 · 34336 阅读 · 11 评论 -
Android开发之okhttp图片上传
private void uploadImg(String uploadUrl, File file, final String fileId) { okhttp3.MediaType mediaType = okhttp3.MediaType.parse("application/octet-stream"); RequestBody requestBody = RequestBody.create(mediaType, file); WpkWyzeSer.原创 2021-09-08 15:57:30 · 571 阅读 · 0 评论 -
Android开发之保存图片到相册的方法
有三种方法如下:三个方法都需要动态申请读写权限否则保存图片到相册也会失败方法一: /** * 保存bitmap到本地 * * @param bitmap Bitmap */ public static void saveBitmap(Bitmap bitmap, String path) { String savePath; File filePic; if (Environment.getExtern原创 2021-05-18 10:06:19 · 3929 阅读 · 1 评论 -
Android开发之可以在任意页面开启主线程和使用线程池开启子线程的工具类
代码很简单说下思路,只需要使用handler通信即可,点击跳转源码页面链接????package cn.xiayiye5.xiayiye5library.thread;import android.os.Handler;import android.os.Looper;import android.os.Message;import androidx.annotation.NonNull;import cn.xiayiye5.xiayiye5library.inter.MainThre原创 2021-04-14 13:20:39 · 334 阅读 · 0 评论 -
Android开发之打开QQ聊天页面的方法
这个效果很多年前就做过记录下如下图:核心代码如下:String urlQQ = "mqqwpa://im/chat?chat_type=wpa&uin=" + 13343401268 + "&version=1";Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(urlQQ));// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(int原创 2020-09-22 17:24:55 · 2692 阅读 · 0 评论 -
Android开发之解决NestedScrollView滑动监听兼容低版本的方法
NestedScrollView的滑动监听目前仅限api23及以上,为了兼容低版本如下自定义方法可以自定义NestedScrollView即可如下:package cn.net.gfan.world.widget;import android.content.Context;import android.support.annotation.NonNull;import android.support.annotation.Nullable;import android.suppor原创 2020-09-10 15:10:31 · 1941 阅读 · 1 评论 -
Android开发之判断APP前后台的方法
老套路看图:我们可以利用application监听全局的所有activity的生命周期前提版本大于Android4.0提供一个监听的工具类package com.mchsdk.open;import android.app.Activity;import android.app.Application;import android.os.Bundle;/** * @author XiaYiYe5 * 2020年7月14日15:32:02 * 监听游戏前后台的工具类.原创 2020-08-10 21:22:48 · 1506 阅读 · 0 评论 -
Android开发之AlertDialog设置左右边距的间接办法
老套路看未设置边距的:再看下设置边距的效果非常明显了吧,思路将AlertDialog的背景色设置为透明,然后在xml布局中在外面再套一层空布局,在第二层布局中添加drawable边框就可以了再看xml套的一层如果上面图片看不明白直接上代码:先看xml,如有缺少颜色图片请自行补全<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.a.原创 2020-08-05 11:55:44 · 4195 阅读 · 0 评论 -
Android开发之获取常用android设备参数信息
如下图:查看工具类:下载apk的方法缺少xutils库,可以自己添加xutils库package com.mchsdk.paysdk.utils;import android.Manifest;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.原创 2020-07-03 12:32:14 · 1601 阅读 · 0 评论 -
Android开发之高仿三方授权登录的实现方案类似微信登录QQ登录微博登录人人网登录
老套路上图:说下实现思路:首先我们Android自带的隐式跳转打开三方APP,与此同时注册一个广播用于接收三方APP传递过来的token信息用于登录自己的APP。也就是说拿到三方APP的登录token然后使用三方APP传过来的token进行登录即可。看代码:打开三方APP以及注册广播和接收广播数据的页面Mainactivity.javapackage com.xiayiye5.authority;import android.content.BroadcastReceiver;原创 2020-08-04 09:23:28 · 1054 阅读 · 1 评论 -
Android开发之利用动画做出Activity悬浮滑动效果
老套路看效果:核心代码就几行:package com.example.firstapp;import android.os.Bundle;import android.view.View;import android.view.animation.Animation;import android.view.animation.TranslateAnimation;import android.widget.LinearLayout;import android.widget.原创 2020-06-03 20:31:22 · 620 阅读 · 0 评论 -
Android开发之下载Apk安装的方法兼容Android7.0和8.0及以上
具体查看代码:首先在清单文件配置三个权限读写权限和请求安装权限(兼容Android8.0手机)如下: <!--安装apk权限--> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <!-- 在SDCard中创建与删除文件权限 --> <uses-permission android:name="android.per原创 2020-07-09 19:27:17 · 1609 阅读 · 0 评论 -
Android开发之购物车添加商品实现抛物线动画
老套路先上图:第一个是个人项目用到的效果图,第二个数抠出来的demo说下思路很简单:第一步先拿到加号图片在屏幕的坐标(X,Y),然后拿到加号按钮图片的大小,然后将拿到的坐标和大小复制给一个新的图片按钮,将这个新的图片按钮添加到加号按钮的同一个位置。然后对这个新的加号按钮进行X,Y轴方向上的平移动画即可。具体实现请看代码:package com.xiayiye.honorfirst.a...原创 2020-04-02 17:20:22 · 3049 阅读 · 0 评论 -
Android开发之fragment传递参数的两种方法
非常简单一种是通过bundle,另外一种是通过fragment提供的instantiate(过时方法),都是kotlin版本,直接上代码吧:方法一://fragment传递参数方法一 val fragment = MvPagerFragment() val bundle = Bundle() bundle.putString("args...原创 2020-03-08 12:44:22 · 5102 阅读 · 0 评论 -
Android开发之使用观察者模式结合推送实现订单自动刷新
老套路:先上效果图:请看第二个订单状态说下思路:订单状态改变是后台改变了,然后通过三方推送订单数据到手机,手机端通过拿到推送的数据进行自动刷新订单状态,这里面用到了Java设计模式中的:观察者模式。接收推送的哪个类就是被观察者,接收到推送订单数据就会通过观察者进行数据的更新被观察者:代码都是Kotlin写的package com.xiayiye.takeout.utils...原创 2020-03-07 15:30:39 · 817 阅读 · 0 评论 -
Android开发之最简单的布局点击Tab和Fragment切换源码(特别适合初学者)
老套路看效果图:说实话这个布局实现的思路太多了,自己写以及第三方都特别多,不过对于初学者还是从一点一滴开始学起比较简单也容易理解。直接上源码吧,我这个是用的最新的AndroidX库和Kotlin写的。MainActivity.ktpackage com.xiayiye.takeout.ui.activityimport android.os.Bundleimport and...原创 2020-03-04 19:45:10 · 1098 阅读 · 0 评论 -
Android开发之自定义AlertDialog的大小
老套路先看效果图:再来看下代码:package com.tm.live.ui.dialog;import android.app.Activity;import android.support.annotation.ColorRes;import android.support.annotation.DrawableRes;import android.support...原创 2020-01-09 20:15:42 · 3149 阅读 · 4 评论 -
Android开发之可以在临界点左右滑动的ViewPager
老套路先上效果图:可以在临界点滑动的ViewPager,上图效果是;两个ViewPager,一个垂直一个水平滑动的,这次主要讲解临界点左右滑动,实际上很简单,只需要自定义ViewPager在事件分发中的分发事件中获取按下的坐标,然后在onTouch事件中的UP(抬起)事件中做相应的判断,记住一定要在抬起事件,不能在移动事件中,否则会调用多次。具体看代码:package com....原创 2020-01-08 19:20:24 · 443 阅读 · 0 评论 -
Android开发之自定义控件的基本介绍(附源码)
老套路先看效果图:一个特别简单的字母排序列表如上图:先看下有哪些属性: <com.xiayiye.honorfirst.custom.CustomNumView android:id="@+id/cn_view" android:layout_width="40dp" android:layout_height="match_...原创 2019-12-11 17:03:24 · 320 阅读 · 0 评论 -
Android开发之高仿淘口令操作核心逻辑
看下核心逻辑 //读取剪切板内容 ClipboardManager clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); assert clipboardManager != null; ClipData primaryClip = clipboar...原创 2019-11-05 10:30:26 · 839 阅读 · 0 评论 -
Android开发之Android Studio依赖aar包的四种方法(附加第三方库依赖方式)
使用AS任意版本:方法一: repositories { flatDir { dirs 'libs' } }implementation (name: 'paylibrary_v1.0', ext: 'aar')方法二:一行代码搞定implementation fileTree(include: ...原创 2019-10-23 17:04:31 · 5886 阅读 · 0 评论 -
选择时间日历控件DatePickerDialog实现(从外包项目中挖出来整理的)
直接上源码Mainactivity.javapackage cn.xiayiye.canclder;import java.util.Calendar;import android.app.Activity;import android.app.DatePickerDialog;import android.app.Dialog;import android.os.Bun翻译 2016-10-11 16:09:44 · 645 阅读 · 0 评论 -
关于Android studio run 按钮灰色无法运行的总结
昨天群里有个人遇到了新安装Android studio 新建项目后,项目无法运行,不管是跨借鉴shift +F10还是run按钮,因为run按钮是灰色的额,所以无法运行,看了下网上的经验,有的说点开胖你按的倒三角,但是不行,点开了没有如下图:依然是灰色,找了很多方法就是无法解决,最后那个群友才发现是adb环境变量没有配置,只要将adb的路径配置环境变量到path里面就好了,不懂原创 2016-11-02 11:39:18 · 32330 阅读 · 3 评论 -
关于com.android.support:appcompat-v7:26.0.0以上无法下载的问题
关于com.android.support:appcompat-v7:26.0.0以上无法下载的问题从api 26开始,support libraries 需要从google的maven仓库下载,所以需要在project的build.gradle中allprojects 添加如下配置即可maven { url "https://maven.google.com" }如果是新手不转载 2017-12-04 09:36:33 · 7053 阅读 · 2 评论 -
listView无需适配器添加数据(写demo快速开发)entries属性的特殊用法
先看下简单的布局代码<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertic原创 2017-12-13 10:57:13 · 1668 阅读 · 0 评论 -
教你实现splash欢迎页面延迟跳转的6种方法
教你实现splash页面延迟跳转的六种方法(个人总结) 实现方式一: private void initSplashPage() { new Handler().postDelayed(new Runnable() { @Override public void run() { /原创 2017-12-18 17:05:22 · 2324 阅读 · 0 评论 -
RecyclerView分割线的技巧
RecyclerView分割线的技巧真的很简单,因为方法别人都已经写好了,不多说了还是看源码:package com.xiayiye.yhsh.recyclerviewdemo;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;im转载 2018-01-03 15:27:22 · 235 阅读 · 0 评论 -
Android控件随手指的移动而移动
Android控件随手指的移动而移动原理:这个不是很难,首先我们要给控件设置触摸监听时间,监听按下,移动,抬起等操作,然后在移动,按下里面分别获取按下的坐标,通过移动获取的坐标减去之前按下的坐标得到移动的距离在XY轴上面,然后获取控件在主界面的上下左右的坐标值,通过之前的坐标值加上移动的距离就是控件移动后的未知了。代码如下:ll_move表示要移动的控件 ll_move.s原创 2018-01-23 15:53:40 · 5711 阅读 · 0 评论 -
点击打开自己博客地址通过默认浏览器
点击打开自己博客地址通过默认浏览器点击默认打开自己博客地址是为了起到推广自己博客,增加曝光率,那么在Android里面如何打开呢?其实很简单,三行代码即可打开,首先说明,如果没有默认浏览器,你安装了多个浏览器的话点击后会弹出提示框让你选择使用哪个浏览器打开你的博客地址,代码如下: private void openBlog() { Uri uri = Uri.parse("htt...原创 2018-02-01 16:38:03 · 287 阅读 · 0 评论 -
Android开发编码规范pdf文件下载
Android开发编码规范.pdf文件下载Android开发编码规范.pdf文件下载。公司要求成立统一的开发流程和编码规范,希望每个人的编码一致,风格一致,这样有利于提高开发效率,于是我从网上整理了下三个模块,还是整理的挺详细的,需要的可以下载看看,就是有点乱,没有具体大纲,毕竟我不会编书…………点击下载,别的不多说了上面那个没有目录,想要下载有目录的请下载这个点击下载目录版本...原创 2018-02-08 11:15:41 · 609 阅读 · 0 评论 -
自己抽取的柱状图MpAndroidChart
自己抽取的柱状图MpAndroidChart根据官方MpAndroidChart的demo自己抽取的柱状图,有需要的可以拿去,直接修改下对应参数即可柱状图demo下载原创 2018-02-08 11:18:01 · 244 阅读 · 0 评论 -
Android通过使用系统广播监听网络状态的改变
Android通过使用广播监听网络状态的改变先看代码:我们可以通过系统广播:android.net.conn.CONNECTIVITY_CHANGE来实现手机网络的变化package cn.xiayiye.networkchange;import android.app.Activity;import android.content.BroadcastReceiver;import and...原创 2018-02-28 10:25:47 · 3423 阅读 · 0 评论 -
Android自定义控件之自定义时钟
Android自定义控件之自定义时钟这个是我从别的开源项目中挖出来的,真心写的很不错,然后继续下来以便不时之需,直接上代码:WatcherBoard.java这个是自定义的时钟类package cn.xiayiye.custormtext;import android.content.Context;import android.content.res.TypedArray;import ...原创 2018-03-01 11:41:54 · 1072 阅读 · 0 评论 -
Android通过广播实现强制下线功能
Android通过广播实现强制下线功能我们首先定义一个activity集合类,在这个类里面主要添加三个方法,分别是1.添加activity2.删除activity3.关闭所有activity如下图:package cn.xiayiye.forceoff_line;import android.app.Activity;import java.util.ArrayList;import j...原创 2018-03-01 13:00:26 · 741 阅读 · 0 评论 -
Fragment切换。radiobutton加fragment切换(附件源码下载)
首先粘贴主代码Mainactivity.javapackage cn.yhsh.zs.fragmentdemo;import android.support.v4.app.Fragment;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;i...原创 2016-08-10 12:47:24 · 343 阅读 · 0 评论 -
缓存目录的区别getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()的作用
几行代码即可看出区别:Environment.getDataDirectory() = /dataEnvironment.getDownloadCacheDirectory() = /cacheEnvironment.getExternalStorageDirectory() = /mnt/sdcardEnvironment.getExternalStoragePublicDirectory...原创 2018-03-13 10:11:12 · 1033 阅读 · 0 评论 -
Android文件存储方式之openFileOutput与获取数据openFileInput
一般存储数据无非分为SP存储和数据库还有文件存储,这里我们说下文件存储openFileOutput和取出数据openFileInput我们在一不小心退出APP如果再无退出之前不将数据保存的话数据是会丢失的,那么如何保存呢?接下来说下openFileOutput这个方法,它是默认存储在data/data/app包名/files/目录下面的,当然手机不root是看不到数据的,请自行使用模拟器查看。有保...原创 2018-03-19 16:57:43 · 9356 阅读 · 5 评论 -
使用Android Studio打包生成Jar包的方法(亲测可用)
首先我们来说下打成jar包的分类:1.application应用打成jar包2.内库打成jar包不管是那种打包jar包都得变成内库,所以当一种方法讲解了。打jar包之前得让你的项目成内库:如何变成内库呢?看下内库文件的图标如下图:如下两点:先将你项目gradle文件最上面的apply plugin: 'com.android.application'...原创 2018-03-21 14:19:22 · 66151 阅读 · 15 评论