自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

打渔还是晒网 —— stone

人生不是简单的if和else,很多时候都是在出现问题时才when and then

  • 博客(458)
  • 资源 (14)
  • 收藏
  • 关注

原创 Android 代码混淆 选项说明

转载请注明出处: Android 代码混淆 选项说明http://blog.csdn.net/jjwwmlp456/article/details/44977721 -----------------匆忙拥挤repeat语法规范说明地址:https://stuff.mit.edu/afs/sipb/project/android/sdk/android-...

2015-04-10 17:46:31 14423 5

原创 Android Property Animation 属性动画

Property Animation介绍: 出生在3.0,是利用了View所拥有的属性,进行一系列的操作。比如一个View有什么样的setAbc的属性,那么理论上就可以设置它。它不仅改变View的绘制,也改变了View的属性;而Tween Animation 只改变View的绘制。ValueAnimator 为动画的基类,它有一个子类ObjectAnimator。需要Interpola

2014-08-12 21:48:51 28930 3

原创 Android 使用NanoHTTPD 架设 Http Server + 客户端App 发送请求示例(含上传图片示例)

在指定端口启动 http 服务;定义调用规则:请求方式、Uri 路径匹配、参数解析等;将server 相关代码,安装在 A 设备上;client 相关代码安装在 B 设备上。在 client 中,发送 http 请求,获取响应数据。

2024-02-26 09:19:49 590 1

原创 Android 进程重启问题 android.os.Process.killProcess()

全局任务栈内有超过一个以上的 Activity 实例。此时,调用 `Process.killProcess(Process.myPid())`后,系统表现,类似“意外关闭”会重建关闭页面的前一个 Activity

2023-08-02 08:55:25 885

原创 Android Paging3分页+ConcatAdapter+空数据视图+下拉刷新(SwipeRefreshLayout)+加载更多+错误重试 (示例)

Paging3分页+ConcatAdapter+空数据视图+下拉刷新(SwipeRefreshLayout)+加载更多+错误重试 (示例)

2023-06-10 16:37:16 3460 6

原创 Android 对View 进行旋转、缩放、平移的属性变换后,获取外矩形顶点

Android View 通过平移、旋转、缩放后,顶点映射之前写的这个文章,里面用到的是通过 矩形的4个点来映射出新的4个点。个人以为这就会得到正确的结果。最近呢,就想着,验证一下这个是不是正确的验证想法:“基于 变换后的 ltrb,加一个自定义 view layout;有最外层 view那么大;当 view 变换后,在 layout 上以 ltrb为圆心, 画出一个小圆”最终发现,旋转 用会有问题...

2023-04-19 19:09:21 1482 1

原创 Android 项目开发,增加调试面板,及进入调试面板的入口问题

项目开发过程中,总会遇到一些问题,需要手动改动一个开关的值,重新编译运行需要手动改动接口地址,重新编译运行自己想看一些数据,但它们不应该在正常功能中以上,都可以增加一个调试面板来解决。在测试环境中,增加一个用于调试的 Activity,内部可以有各种配置、展示等等,开发人员,想咋弄咋弄…基于以上想法,打开调试面板的入口,就可以,类似打开『开发者模式』,在某个地方,连续点击n次,触发;弄个悬浮窗,触发。

2023-03-11 15:06:52 561

原创 Android ProcessLifecycleOwner 观察进程生命周期

Android ProcessLifecycleOwner 依赖 App进程生命周期

2023-02-15 18:03:08 1495

原创 Java 和 Kotlin 中,字符转Unicode,Unicode 转10进制

字符转Unicode;Unicode 转10进制

2023-02-09 09:09:51 624

原创 Kotlin 匿名扩展函数作为参数时的语义

匿名扩展函数,可以简单看作是,把当前扩展类型当作参数的 函数

2023-02-05 23:02:28 388

原创 Android 11,获取已安装应用的包名,和应用名

Android 11,获取已安装应用的包名,和应用名

2023-02-05 12:11:00 984

原创 Android WindowInsetsController 设置状态栏、导航栏

底部的三个按键就是导航栏 (navigation bar): back / home / recent。高版本系统,recent,可能没有图标了,需要在那个位置"上滑"

2023-01-18 14:44:23 2676

原创 Android Studio : PKIX path building failed: ... (mac os -- ventura)

试了各种方法,什么 build clean, gradle.properties 中的 代理配置(这块 我这没有) 等等,后来尝试重启电脑,这个方法真好,重启一次就成功一次,下次不一定 …那就,把凡是代理中 选中的 都取消了,并把代理设置的相关软件关闭,再重启 Android Studio 就好了。后来,用 Android Studio(2021.3.1 Patch 1) 经常 出现。今天发现,原来是 WIFI 设置 里 有代理…mac,前阵子升级到了 ventura。

2022-12-26 10:57:57 415

原创 Android ContentProvider中使用 room 并支持API 30(android 11)

这个示例,断断续续地写了两三个周末了,上周完成了添加和条件查询操作;今天把模糊查询、删除、更新操作都完成了。authority 将用于 manifest 中注册、数据操作的Uri匹配规则,以及...

2022-12-23 16:35:55 1717

原创 Android 使用DataBindingUtil 封装支持DataBinding的BaseActivity、BaseFragment

如,混合webView时,在js回调中,再调用UI组件,这时宿主Activity可能已经finish了,而js回调开始执行。如上,泛型使用时,使用 reified 关键字,所以最终无法在 BaseActivity、BaseFragment 类定义中直接使用。后来,继续接触 dataBinding feature,期间还是使用之前定义的ViewBinding封装类,也没什么问题。就是觉得每次,实例化还是要重复写一堆一样的代码,有点麻烦。所以,只是前面的封装类中的 泛型类型改成。所以改成了,子类来实例化。

2022-12-11 17:18:11 2148

原创 Android MVI 模式的封装实现(基于kotlin FLow 和 ViewModel)

定义基类接口,和 通用的 实现的类/*** desc: UI 事件意图,或 数据获取的意图* 正在加载* 加载失败*/ class LoadErrorState(val error : String) : IUiState // 加载成功 class LoadSuccessState < T >(val subState : IUiState , val data : T?

2022-11-27 23:28:30 3492 15

原创 Android 多个EditText,下一个和最后完成的 xml配置

要设置单行效果,需要 android:maxLines=“1”,并显式指定 android:

2022-11-21 10:19:19 557

原创 Android API Level 和对应版本号

Android API Level 和对应版本号

2022-10-27 11:58:42 129

原创 Android Compose 版本与 Kotlin 版本的兼容问题

最新的 AS 是有版本自动提示的。输入1.3 发现就有了 1.3.0, 而文档中 稳定版本的 1.3.0还没更新上去。找到 kotlin 1.5.31 的配置,修改成 1.7.10。

2022-08-20 19:30:12 2904

原创 Kotlin 正确退出 foreach、foreachIndexed 循环函数

Kotlin 正确退出 foreach、foreachIndexed 循环函数

2022-07-15 09:38:23 2419

原创 Android 防重复点击(Kotlin 协程实现 和 Handler实现)

文章目录Kotlin 协程实现调用Handler + Runnable 实现调用考虑了,直接绑定 View#setOnClickListener 实现函数;或传入View.OnClickListener 实例。Kotlin 协程实现调用mBind.btnJaClickA.debounceClick(this) { }mBind.btnJaClickB.debounceClick(lifecycleScope) { }mBind.btnJaClickC.debounceClick(this, o

2022-05-21 14:36:53 2297

原创 Android 解决InputMethodManager 内存泄露问题

在android 11的 InputMethodManager的源码中,查看 windowDismissed(),如下/** * An empty method only to avoid crashes of apps that call this method via reflection and do not * handle {@link NoSuchMethodException} in a graceful manner. * * @deprecated This is an empt

2022-05-04 23:52:01 1866

原创 Android 基于Gradle 7.2+,自定义插件示例(实测7.4.2也可以运行)

前几天,找到了之前从官方公众号中,收藏的文章,来简单学习一波Gradle与AGP。就是这一篇:Gradle 与 AGP 构建 API: 进一步完善您的插件!,文章内部会发现,这是一个小系列,共有3篇文章。

2022-04-27 23:55:33 4505

原创 Android Jectpack-Compose 库的粗略学习

断断续续的看了几天的文档,测试过一部分的官网示例代码,使用的是1.0.5版本。Compose 相较于View的体系优点是:一次测量,一次绘制,组合灵活多变。它不需要编写xml文件,纯代码编写界面,不用分窗口编码,导致分散开发人员的注意力。缺点是:牺牲了代码可读性,大量嵌套。在一个项目中,或多个风格类似的项目中,定义一套基础组件视图的公共库,它们都是由一个个@Composable 函数构成的,从前的一堆xml和View源码文件,变成了一个个".kt"源文件。再有一套说明文档,那应用起来应该会酸爽一些。

2021-12-11 21:45:10 2063

原创 Android 根据目标宽度,将bitmap等比缩放。

/** * 根据目标宽度,将bitmap等比缩放。 * dstWidth 确定的 目标宽度 */ fun calculateBitmap(bitmap: Bitmap, dstWidth: Float): Bitmap { val width = bitmap.width val height = bitmap.height // 如果得到的宽或者高是0 返回原对象 if (width == 0 || height == 0) return bitmap

2021-12-03 11:19:49 3072

原创 Android 获取View的Bitmap

fun createBitmapFromView(view: View): Bitmap? { val bitmap = Bitmap.createBitmap(view.width, view.height, Bitmap.Config.ARGB_8888) val canvas = Canvas(bitmap) canvas.drawColor(Color.WHITE) view.draw(canvas) return bitmap }

2021-12-03 11:08:58 759

原创 Android View 通过平移、旋转、缩放后,顶点映射

View 通过平移、旋转、缩放后,其本身的 left、top、right、bottom、width、height是没有变化的。平移:setTranslationX(), setTranslationY() ;旋转:setRotationX(), setRotationY() ;缩放:setScaleX(), setScaleY() 。在三种操作后,获取新的 ltrb、w、h 就需要重新计算了// view 平移、旋转、缩放 变换后,计算新的 ltrb; ltrb ==> dst[0,1

2021-11-23 20:31:02 2624

原创 Android 拍照 引发 “SecurityException has no access to content://media/...“

现象:后台日志发现,只有在 android 10 以上的某些机型上才会引发异常。原创建 拍照图片的 uri 代码:val con = contentValuesOf()val cacheName = "xxx.jpg"con.put(MediaStore.Images.Media.DISPLAY_NAME, cacheName)val rootFile = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PIC

2021-11-17 14:25:46 4667 2

原创 Android RenderScript+ScriptIntrinsicBlur 或 RenderEffect(android 12) 实现 图片模糊效果

// 图片模糊函数private fun blurByRenderScript(bitmap: Bitmap, radius: Int, view: ImageView) { val rs = RenderScript.create(context) val allocation = Allocation.createFromBitmap(rs, bitmap) val blur = ScriptIntrinsicBlur.create(rs, allocation.element

2021-10-26 12:02:45 1220

原创 Android 利用 LiveData 共享数据,进行跨界面数据传递

import androidx.lifecycle.MutableLiveData/** * desc: 共享事件,进行跨界面数据传递 * author: stone * email: [email protected] * time: 2021/10/15 16:01 */class LiveDataBus private constructor() : MutableLiveData<Event<FlashEvent>>() { compan

2021-10-18 15:30:52 1281

原创 Android ActivityResultContracts 请求权限(封装;含android 11权限变更)

文章目录Android 11 权限变更权限申请Android 11 权限变更官方文档Beginning with Android 11, ACTION_MANAGE_OVERLAY_PERMISSION intents always bring the user to the top-level Settings screen, where the user can grant or revoke the SYSTEM_ALERT_WINDOW permissions for apps. Any p

2021-09-13 14:10:21 1592 1

原创 Android layer-list 绘制圆环

<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 底层圆;宽高属性在 api 23以上有效;一旦生效,若与目标view的宽高不一致,那看到的效果就不正常; 可以去掉 宽高配置,在目标view上配置上 相同的 宽高就行 --> <item android:wid

2021-08-27 11:19:51 617

原创 C++ bind() 绑定函数与对应参数

参数 绑定。 bind(), 是一个函数适配器。能改变原函数的参数顺序,能改变调用时参数个数。auto newer = bind(origin_fun, args…); 可使用 参数占位符,相应的占位符编号就是原函数中的参数位置。#include <functional>bool check_size(const string &str, const string::size_type &sz) { return str.size() > sz;}usi

2021-06-22 10:48:20 453

原创 C++ lambda 表达式

lambda 表达式形式:[capture_list](args_list) -> returnType {}capture_list 是要捕获的 外部局部变量列表。1. 使用变量值,是值拷贝,默认不可修改。若需要在函数体内部可以改变值,在参数列表后加上 mutable。即使修改了,也不会影响原外部的值。2. 使用引用,如 &a。引用捕获。 引用依赖的若是const引用,则不能修改,反之可通过引用修改。3. 使用 一个 & 或 =,前者是引用捕获,后者是值捕获。在函数体中,

2021-06-21 23:19:10 73

原创 C++ ifstream、ostringstream、 istringstream 读取并输出文件中的string

学习一波,记一下。#include <iostream>#include <fstream>#include <sstream>#include <vector>using namespace std;struct Info { string name; vector<string> phones;};void readFile() { string line, word; vector<I

2021-06-14 14:06:52 734

原创 Android ActivityResultContracts 替代 startActivityForResult

没有ActivityResultRegistry的函数,默认使用当前宿主 Activity 的注册。可以自定义传入ActivityResultRegistry 参数, 在非 Activity/Fragment中注册。registerForActivityResult() ,在fragment中 需要在 created 之前在Activity中,需要在 started 之前将ActivityResultContracts#TakePicture 协议进行改造。对入参与结果类型进行改变。

2021-06-10 15:09:00 3867 3

原创 Android Jectpack-ViewBinding 实践(kotlin实现)

文章目录I. 文档II. 配置及简要说明III. 源码IV. 一个生成类的源码V. 使用方法VI. 封装VI.i. 一个DialogFragment例子VI.ii. 强制Fragment子类实例化ViewBinding对象I. 文档官方文档id kotlin-android-extensions 插件过时了,官方推荐 ViewBinding。以下为官方文档中的一段话:与 findViewById 的区别与使用 findViewById 相比,视图绑定具有一些很显著的优点:Null 安全:

2021-03-27 15:07:27 402

原创 C++ 数组(及二维数组)与指针(互转、遍历),数组与引用

文章目录I. 数组与指针互转I.i. 数组的一个基本性质就是能看成一个指针I.ii. 内存空间I.iii. 求静态数组大小II. 一维数组遍历II.i. 有结束字符II.ii. 使用标准库中,首、尾元素指针,进行遍历II.iii. 有数组大小,再遍历III. 数组引用III.i. 形参固定大小III.ii. 定义模板,以传递任意大小的数组IV. 二维数组与指针IV.i. 二维数组内存分布IV.ii 二维数组作形参并遍历IV.ii.a. 固定第二维,第一维是指针或数组IV.ii.b. 一级指针指代二维数组IV

2020-12-22 11:18:17 3418

原创 Android Floyd-Steinberg-Dithering、Stucki-dither 抖动处理

文章目录I. Floyd-Steinberg-DitheringI.i. 动态数组实现I.ii. 指针实现II. StuckiIII. 示例I. Floyd-Steinberg-DitheringGithub: Native-Floyd-Steinberg-Dithering该作者对Floyd-Steinberg-Dithering 的处理中,使用的是静态数组,容易栈溢出。这里,给出两种实现来避免。当然,若一次处理的位图信息过大,也是会堆溢出,OOM的。I.i. 动态数组实现cpp 代码如下。

2020-12-21 20:21:49 1162

原创 Android 获取View的原图,并以高度分段裁剪存储

最后一段高度,可能小于 singleHeight;这里的处理是,会先创建一个空白的 singleHeight高的图,再将最后一段内容绘制上去;结果是会造成留白。

2020-12-09 15:54:53 425

C语言常用函数速查手册.pdf

本书全面、系统地讲解了C语言相关的21个函数库,所涉及的函数多达352个。为了方便读者学习,每一个函数都依次对其作用、语法形式、参数、返回值进行了讲解。同时,每个函数都配有专门的例子,供读者参考学习。最后给出了本书所涉及C语言函数的索引,便于读者检索

2017-10-11

kotlin-docs.pdf

kotlin 官方指南

2017-05-27

Android 电视开发框架

Android 电视开发框架

2016-03-18

Android模糊虚化图片截屏

这是一个示例,必需要描述的一段话:Android模糊虚化图片截屏

2014-12-05

Android Volley Demo

Android Volley Demo:数据的加载在test包中,使用JUnit测试即可。Activity中是三种图片的加载方式。

2014-11-19

Android图片瀑布流使用StaggeredGridView

Lib project is Android lib

2014-08-04

Android图片瀑布流使用PinterestLikeAdapterView

PinterestLikeAdapterView is android lib

2014-08-04

Android-Google-QuickSearchBox 4.x 源码

Android-Google-QuickSearchBox 4.x 源码:导入工程后可直接使用

2013-02-06

Android 多线程断点下载.zip

Android 多线程断点下载.zip的一个示例

2013-02-05

Android用PopupWindow实现弹出listview形式菜单

Android之用PopupWindow实现弹出listview形式菜单.rar

2013-02-05

Android 垂直 Seekbar.zip

Android 垂直Seekbar.zip:显示垂直seekbar的源码

2013-02-05

BitmapFun.zip Android Bitmap 处理

BitmapFun.zip Android Bitmap ,处理大图片、图片缓存

2013-02-05

wireshark中文使用教程

wireshark中文使用教程,内含一份中文的readmin

2012-04-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除