自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ganshenml的专栏

(~ ̄▽ ̄)~

  • 博客(85)
  • 资源 (5)
  • 问答 (3)
  • 收藏
  • 关注

原创 Android 实现WebView点击图片查看大图列表及图片保存

在日常开发过程中,有时候会遇到需要在app中嵌入网页,此时使用WebView实现效果,但在默认情况下是无法点击图片查看大图的,更无法保存图片。本问将就这一系列问题的实现进行说明。项目的知识点:1.加载网页后如何捕捉网页中的图片点击事件;2.获取点击的图片资源后进行图片显示,获取整个页面所有的图片;3.支持查看上下一张的图片以及对图片缩放显示;4.对图片进行保存;

2017-02-13 17:32:45 10901 3

原创 H5 图片系列—new Image()加载图片是否会有缓存,从而img标签获取同一数据源显示时使用该缓存数据?

new Image() 加载图片后,浏览器会利用缓存,避免重复下载相同的图片。Vue 中的会使用图片的 URL,如果该 URL 被缓存,浏览器会直接从缓存中加载,无需再次发起网络请求。

2025-02-10 09:23:13 715

原创 Android 更改包名

这个就是包名。同一台手机能否安装不同的APP就是依据这个标识来判断。它在gradle文件中指定。

2025-01-03 10:14:32 594

原创 Git 拉取指定分支创建项目

如果你使用了 --single-branch 参数进行克隆,那么默认只会拉取指定分支,其他远程分支不会被克隆。这样只会克隆指定分支的历史,减少不必要的数据传输和存储。<repository_url>:远程仓库的地址。<branch_name>:要拉取的分支名称。–depth 1:只拉取最新一次提交记录。这可以进一步减少克隆的大小,加快拉取速度。因为项目过大,只需要部分分支的代码即可。当前克隆只针对一个分支。

2024-11-18 22:34:08 1574 1

原创 Web Edge浏览器访问http时转成了https

因为是http站点,且登录页跳转时指定的也是http(登录页有https,只不过未指定)。2.如果手动更改登录页地址为https,则重新通过主页来跳转,它就会是https,而并没有变成http;2.前往「设置」中的「隐私,搜索和服务」里的「安全性」,「清除以前允许的所有站点」的选项里,点击「清除」1.如果手动更改登录页地址为http,则重新通过主页来跳转,它就会是http,而并没有变成https;访问地址: edge://flags/#edge-automatic-https。将不安全的域名添加至允许中。

2024-08-22 10:38:52 2011 1

原创 Android 一些技术点杂记

设置自定义View时,手动消除间距。

2024-07-30 10:50:38 279

原创 【Android】传给后端的Url地址被转码问题处理

在 Gson 中,默认情况下会对某些特殊字符进行 HTML 转义,以确保生成的 JSON 字符串在 HTML 中是安全的。因此,字符 = 会被转义为 \u003d。你可以通过禁用 HTML 转义来避免这种情况。为什么使用Gson().toJson的时候,字符串中的=会被转成\u003d。

2024-07-17 23:45:02 694

原创 Android Activity.FLAG.ACTIVITY_NEW_TASK是什么

activity启动目标activity时,有无该标志没有任何影响非activity启动目标activity时,必须添加该标志告诉系统新开任务栈并将新建activity放入其中。

2024-05-10 16:13:54 4454

原创 Android 升级TargetSdkVersion30

即无法在后台时弹出通过方法的提示了。总的来说,TSDK=30是个关键的版本。使用存储的方式需要变更软件包可见性需要添加声明,影响分享、跳转其他APP等功能。

2024-05-09 17:24:33 2630 1

原创 【鸿蒙】通知

通知是个UI组件,它和BroadCastReceiver还是不同的。鸿蒙版本的通知较为基础。

2024-04-26 17:39:01 777

原创 【鸿蒙】ArkTS语言基础类库——并发

并发并没有什么新鲜的介绍。

2024-04-26 17:11:35 1224

原创 Android CardView层级之上的View无法显示

在 XML 中,后声明的视图会绘制在先声明的视图之上。因此,如果你想要一个视图显示在 CardView 的上面,你应该在 CardView 标签之后声明这个视图。如果 CardView 和视图都包含在一个父布局中,检查父布局是否有限制视图显示的设置。检查你的视图和 CardView 的背景色和透明度设置。如果视图的背景色与背景相同或者视图是透明的,它可能会与背景融合,看起来像是被盖住了。确保视图的尺寸足够大以至于能够显示出来,并且它的位置设置正确,没有被 CardView 的边界所限制。

2024-04-11 10:13:16 682

原创 鸿蒙 线程模型

前提:基于官网3.1/4.0文档。参考官网文档基于Android开发体系来进行比较和思考。(或有偏颇,自行斟酌)

2024-03-13 14:48:34 638

原创 鸿蒙 进程模型-公共事件

公共事件—>Receiver。

2024-03-05 18:46:08 939

原创 鸿蒙 Stage模型-AbilityStage、Context、Want

类同Applicationmodule.json5中:2.使用二、Context1.概念与Android类似。传递的数据包含参数:deviceId、bundleName、moduleName、abilityName、uri、type、action、entities、flags、parameters。其中abilityName指定了值则为显式规则,否则为隐式规则。匹配规则偏向于正则表达式匹配规则、包含关系。actionentitiesaction ->actionentities ->

2024-03-05 18:08:42 1637

原创 鸿蒙 Stage模型-应用组件-配置、UIAbility

UIAbility约等于Activity。

2024-03-04 16:25:13 1479

原创 鸿蒙 渲染控制

前提:基于官网3.1/4.0文档。参考官网文档基于Android开发体系来进行比较和思考。(或有偏颇,自行斟酌)

2024-02-26 23:09:25 609

原创 鸿蒙 状态管理-组件装饰器

因为它们类似于Android中的ContentProvider与ContentResolver。一个是提供者,一个是消费者。

2024-02-20 18:30:54 1123

原创 鸿蒙 状态管理-应用存储

如果组件中有多个状态变量,多个状态变量发生状态变化时,是否会触发多次组件初始化?如果是,那么有没有什么办法减少渲染?一直都有个疑问,状态变量在后台发生状态值变更时,UI 是否会渲染?的设计无法理解,因为看起来冗余且麻烦若是想直接本地持久化的数据直接作用于UI 元素渲染,其实通过其他方式实现更简单。(譬如,注解之类,再不济包裹一层通用对象也可以的。和UI 线程直接搅在一起不是明智之举)

2024-02-04 16:23:37 1468

原创 Android Mac电脑更改aar中的文件再打包

其中,your_updated_library.aar 是您新建的AAR文件的名称,folder_name 是包含您修改后文件的文件夹。将AAR文件重命名为.zip,并解压缩它,得到一个文件夹。打开终端(Terminal)并进入AAR文件夹的上级目录。在解压后的文件夹中找到您想替换的文件,将其替换为新文件。将生成的新AAR文件拷贝到项目中,并更新相应的依赖。要在Mac电脑上替换AAR中的文件并重新打包。

2024-01-30 17:06:18 1220

原创 鸿蒙 ArkTs初识

前提:基于官网3.1/4.0文档。参考官网文档基于Android开发体系来进行比较和思考。(或有偏颇,自行斟酌)吐槽:官网上的案例只有代码和文档解释,没有可以直接运行查看效果的模拟器,这一点上,Jetpack Compose是有的。

2024-01-28 23:05:06 2041

原创 TypeScript初识——基于Java、Android开发体系

TS就是套用较多Java特性的JS语言,它具有更多类似Java语言规范的约束TS的类型映射较Java更灵活尽量不要使用逻辑性需要特别推测的语法,新上手容易搞晕,尤其TS这种语法灵活的开发语言注重开发工具的提示,能了解、加深语法认识什么时候能去掉语句结尾的分号;

2024-01-18 18:48:04 1213

原创 Android 项目拉取运行、aar打包集成问题处理合集

解决思路也是:接受方使用一致的版本(或者引用公共gradle文件依赖,或者手动改为一致),或者exclude掉冲突组件,而这需要仔细看build的警告、错误日志以及有去排除可能错误的手段。b.ctrl+鼠标左键点击文件标签即可看到该文件的树级目录(mac 是command+鼠标左键点击)。gradle-wrapper-.properties 提升distributionUrl 的gradle版本。删除无效的原因在于,这是build时产生的,删除后仍旧会重生。找到该重复文件,并进行删除——无效。

2024-01-02 14:22:47 1192

原创 Android Kotlin could not find the required JDK tools in the java installation. Make sure Kotlin comp

能发现问题就好解决。难点往往在于发现问题。安装本地包成功,但使用脚本打aar过程中则失败电脑重装后,拉取之前成功的项目时,再次运行就不可以了变量在于Android studio的版本发生变更和本地环境变量重置了。通过这两点来找到问题的症结,而不是尝试更改代码的配置,譬如随意去更改gradle版本和其插件版本(众所周知,更改这两个后重新构建会带来很多问题。好好看build 控制台的输出,等找到这段错误或者警告提示时,可能问题已经解决一半了。

2023-12-27 10:53:05 856

原创 Android ViewPager实现下载当前页面ImageView的Bitmap图片

一般情况重新获取url再次进行bitmap的下载是可以的,无法是获取currentItem及其position,然后从List中获取对应的url进行远程加载。经常会有画廊组件需要在当前展示给用户的页面进行下载功能。一般情况下下载按钮的UI曾经是和ViewPager同级的,而不是作为ViewPager中adapter对应的item一部分。因此知道当前展示给用户的item页面及其bitmap在用户点击下载按钮时的处理,显得比较关键。因此,直接使用当前已经显示的bitmap复用是一种较为划算的方式。

2023-12-20 23:03:54 603

原创 Android 顶部对齐宽度撑满高度等比例缩放及限制最大最小高度

【代码】Android 顶部对齐宽度撑满高度等比例缩放及限制最大最小高度。

2023-12-12 00:01:42 771

原创 【Android】在使用约束布局(ConstraintLayout)中,当某个子View发生隐藏后,某个View无法正确显示了

这是因为ConstraintLayout布局中的约束是相互关联的,一个View的位置和大小通常依赖于其他View的约束条件。当一个View隐藏后,它所依赖的约束条件就不存在了,因此与该View相关的其他View的位置和大小可能会受到影响,从而导致显示异常。而你通过“显示布局边界”发现,TextView的边界根本就没有,由此可以判定TextView 是Gone掉了。在ConstraintLayout布局中,如果某个View约束于另外一个View,当后者View隐藏时,前者的View可能不会正常显示。

2023-11-14 16:22:37 978

原创 Android 如何在Android studio中快速创建raw和assets文件夹

同理在main文件夹下粘贴要放入assets文件夹的文件,添加对应的assets路径即可生成。当然此时raw文件还没有,直接在右侧输入框中出现的路径~\res后面加上\raw即可。切成project浏览模式——>找到res文件粘贴要放入raw文件夹下的文件。路径很难记,创建项目时由系统直接创建了省事~

2023-11-01 23:21:01 2102

原创 Android 应用程序文件目录数据清理的时机

当应用程序更新到新版本时,新版本的应用程序通常会覆盖旧版本的files目录中的文件。因此,如果旧版本的files目录中的文件在更新后不再需要保留,那么它们可能会被清除。需要注意的是,虽然cache目录中的数据可能会被清除,但应用程序通常会采取一些措施来确保重要的数据得到保护,例如将数据存储在私有目录或使用加密存储。:当应用程序更新到新版本时,系统可能会清除应用程序的缓存数据,以便应用程序在新版本中重新加载数据。:当应用程序被卸载时,系统会删除该应用程序及其相关的数据,包括files目录中的文件。

2023-09-12 09:53:20 699

原创 Android 老项目导入可能遇到的问题 Unsupported Java. Your build is currently configured to use Java 17.0.6 and Gr

—>File——>Project Structure——>SDK location——>Gradle Setting——>Gradle SDK——>选择个1.8的版本下载并运行吧。当然,可以更新gradle,但,这意味着后面有很多需要跟着改的问题。只是想运行下项目看下效果,结果还要改一通内容,最终很可能还不知道能否跑起来。原本这个项目执行不是Java17,本地使用了更高的Java版本,因此同步需要更新gradle。意思是当前的Java17.0.6,需要升级到7.2.于是,根据条件,可以进行一下操作。

2023-09-11 23:28:51 7429 4

原创 Android Failed to invoke getAdditionalVisibleSourceSets on org.jetbrains.kotlin.gradle.plugin.source

从网上下载了一个demo工程,运行起来就报上述错误。诚然,demo肯定本身是可以正常运行的,但是碰上了新装的Android studio确实发生了报错。因此最大可能还是配置或者版本不对的问题。升级gradle,哪有提示就解决提示,哪有爆红就解决爆红。

2023-09-11 22:34:40 2953

原创 算法 学习杂谈

毕竟天赋性选手很少,大多数人都是普通的。对于算法这块,因为日常业务代码写得太多,真正涉及到要使用到算法的时候较少(部分岗除外),探索一种适合大多数人的学习方式是有需要的。死记硬背肯定是一种。可能很多人说要去理解后才能真正的掌握。但死记硬背与其并不矛盾。在记得牢靠的情况下去理解,也是可以融合的。这些代码网络上都有,对于我个人来说需要有个合集的地方,这里就是。这块是会很有争议的,但做了远比不做强。记下经典的算法,达到分钟级别能写出。逐步在该系列模块完善已有的经典算法。算法应该是可以死记硬背的。

2023-09-04 15:02:33 282

原创 Git 同步远程新的同名分支

因为项目已有一些年头,若是每次文件提交比较大,那么占用空间就更大。该方案仅限于:过多的commit提交记录无关紧要!

2023-08-31 19:00:58 709

原创 FloatWindow 如何做到退到后台页面显示回到前台隐藏

集成了FloatingWindow,想在页面退到后台时显示,回到前台时因此,但是后者时机调用时回调日志先收到onHide,接着里面onShow。很明显,只调用了hide方法,为什么会如此?通过FloatWindow中的setFilter来实现。原来时监听activity的生命周期来进行判断回调。通过日志可以看到应该时有回调onShow()很明显要追踪FloatLifecycle。过滤对应的activity是否需要显示。

2023-07-11 23:54:44 250

原创 e: This version (1.3.2) of the Compose Compiler requires Kotlin version 1.7.20 but you appear to be

(工程下的build.gradle)更改为1.7.20 即可。

2023-06-28 23:15:47 1737

原创 Android Unable to load class ‘org.slf4j.LoggerFactory‘

在创建新项目时另外的错误:(使用Android Studio Flamingo | 2022.2.1 Patch 2)直接对问题本身表现的错误进行分析无意义,此处略…(尝试追踪直接的错误,最终无功而发)(很多莫名其妙的问题,通过上述改动可以解决)

2023-06-08 23:20:31 1570 2

原创 android Unable to load class ‘org.slf4j.LoggerFactory‘.

新建立library库时出现这问题。

2023-05-25 23:41:51 1597

原创 android gradle 8.0.1构建失败(Could not resolve com.android.tools.build:gradle:8.0.1.)

初次创建项目失败如何做?

2023-05-24 23:41:27 8267 3

原创 Android DialogFragment 如何显示和隐藏

一、 前述DialogFragment从名字上来就可以理解:它是fragment,具有dialog的特性。二、 方案关于显示可以使用FragmentTransaction,因为它本身是Fragment。关于dismiss:@Overridepublic void onDismiss(@NonNull DialogInterface dialog) { if (!mViewDestroyed) { // Note: we need to use allowStateLoss

2021-09-28 22:51:27 2795

原创 Android 如何简单实现一个跳转页面前判断登录的功能?

(它要求做到点击某个按钮触发跳转到某个activity前进行登录判断,等待登录成功后自动跳转到目标activity)这里以BaseApplication来做数据中转,代码块对象作为跳转执行代码的数据存储:class BaseApplication : Application() { companion object { @JvmStatic var isLogin: Boolean = false @JvmStatic var lo

2021-09-27 23:11:16 955

滑动组件悬浮固定在顶部

内容中间的组件当滑动至顶部的时候固定显示在顶部

2016-11-10

Android给app自定义铃声

Android给app自定义铃声

2016-08-26

利用SurfaceView实现简单的计时器

利用SurfaceView实现简单的计时器

2016-04-14

json的基本传值方式(从前台到后台,再从后台到前台)

自己因为被json传值累得十分痛苦,所以痛定思痛,在实现了一个基本的传值方式后,在此上传资源!下载用过的朋友请多多指出不恰当的地方!

2014-02-27

myeclipse与eclipse注释文件,格式文件导入

在myeclipse或eclipse中导入注释文件和格式文件,便于编码规范

2013-10-22

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

TA关注的人

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