自定义博客皮肤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的专栏

(~ ̄▽ ̄)~

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

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

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

2017-02-13 17:32:45 10196 14

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

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

2024-04-11 10:13:16 372

原创 鸿蒙 线程模型

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

2024-03-13 14:48:34 516

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

公共事件—>Receiver。

2024-03-05 18:46:08 566

原创 鸿蒙 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 1179

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

UIAbility约等于Activity。

2024-03-04 16:25:13 1136

原创 鸿蒙 渲染控制

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

2024-02-26 23:09:25 534

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

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

2024-02-20 18:30:54 915

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

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

2024-02-04 16:23:37 1201

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

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

2024-01-30 17:06:18 800

原创 鸿蒙 ArkTs初识

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

2024-01-28 23:05:06 1376

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

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

2024-01-18 18:48:04 870

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

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

2024-01-02 14:22:47 728

原创 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 587

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

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

2023-12-20 23:03:54 538

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

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

2023-12-12 00:01:42 662

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

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

2023-11-14 16:22:37 501

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

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

2023-11-01 23:21:01 1335

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

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

2023-09-12 09:53:20 304

原创 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 4814 4

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

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

2023-09-11 22:34:40 1611

原创 算法 学习杂谈

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

2023-09-04 15:02:33 249

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

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

2023-08-31 19:00:58 624

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

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

2023-07-11 23:54:44 156

原创 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 1131

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

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

2023-06-08 23:20:31 758 1

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

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

2023-05-25 23:41:51 956

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

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

2023-05-24 23:41:27 6233 2

原创 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 2166

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

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

2021-09-27 23:11:16 831

原创 Android Fragment 在Dialog中的使用

先看这样一个报错:Caused by: android.view.InflateException: Binary XML file line #13 in com.example.kotlindemo:layout/layout_dialog_simple: Error inflating class fragmentCaused by: java.lang.IllegalArgumentException: Binary XML file line #13: Duplicate id 0x7f08

2021-09-13 22:13:06 1740

原创 Android dialog监听生命周期

ViewModel: var lifeCycleEventLiveData = MutableLiveData<Lifecycle.Event>() @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) fun onActivityDestroy() { lifeCycleEventLiveData.value = Lifecycle.Event.ON_DESTROY }}(上述仅写出了onDe

2021-09-09 21:12:15 1038

原创 Android CardView如何显示出底背景样式?

<androidx.cardview.widget.CardView android:id="@+id/actionOneCv" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:foreground="?android:attr/selectableItemBackground" app:cardCorner

2021-07-08 22:42:16 648 3

原创 Android NoteX Q12:如何判定textview超出了一行?

fun setContent(content: String?) { data.content = content contentTv?.apply { //比较是否超出了一行 post { paint.textSize = textSize val exceedOneLine = paint.measureText(content) > width setLines(if (exceedOneLi

2021-07-06 22:53:29 379 2

原创 Android NoteX Q11:trycatch(Exception e)能捕获所有异常么

当然不能,譬如:加载一个不存在的库。System.loadLibrary("c++_shared");还是会报错。java.lang.UnsatisfiedLinkError: dlopen failed: library “libc++_shared.so” not foundat java.lang.Runtime.loadLibrary0(Runtime.java:1087)at java.lang.Runtime.loadLibrary0(Runtime.java:1008)at j

2021-06-29 21:37:39 232

原创 Android NoteX Q10:色值上的各个位代表什么?

一 前言自定义阴影时需要加上透明度才能更好实现平滑的效果,所以需要了解相关方面的知识。当然也不仅限于阴影实现效果,还有其他的UI设计也涉及到透明度了。二 色值代表ARGB这是对应的色值符号,A代表alpha透明度。 <!--100% —FF--> <!--95% — F2--> <!--90% — E6--> <!--85% — D9--> <!--80% — CC--> &

2021-06-15 23:26:24 188 3

原创 Android NoteX Q9: PopupWindow setOutsideTouchable 失效?

设置为true后点击外部还是会被dismiss掉,这是为什么?/** * <p>Controls whether the pop-up will be informed of touch events outside * of its window. This only makes sense for pop-ups that are touchable * but not focusable, which means touches outside of the window wil

2021-05-31 21:33:53 1154 5

原创 Android 如何监听popupwindow的焦点变化

一 假设override fun setContentView(contentView: View?) {super.setContentView(contentView)contentView?.viewTreeObserver?.addOnGlobalFocusChangeListener { oldFocus, newFocus -> doWork()}}通过viewTreeObserver里进行全局焦点变化监听,但是会发现,pop dismiss一次后,以后弹出来

2021-05-25 23:07:38 678 3

原创 Android NoteX Q8:Glide竟然发生了Cannot draw recycled bitmaps?

一 场景还原在多个页面(Activity)中加载了同一gif资源,退出部分Activity后报出了如题错误。Glide.with(this) .asGif() .placeholder(contentIv!!.drawable)//解决切换图片闪烁问题 .load(resId) .listener(object : RequestListener<GifDrawable> { override fun onLoadFailed(

2021-04-30 23:32:50 179 1

原创 Android NoteX Q7: Android Studio 如何设置快捷键?

一 设置步骤File->Settings->Keymap二案例Windows下回到上一次浏览的位置的快捷键为:Ctrl+Alt+⬅(向左箭头),但是这个和设置Windows屏幕方向的快捷键冲突了,所以导致AS中的操作无效。更改的方式如下:双击黄色标记处即可调处menu,可以:Add Keyboard Shortcut :添加快捷键Remove:删除已有的快捷键因此,这里可以Remove掉和系统操作冲突的快捷键。然后Add自己习惯的快捷键。调出窗口后,直接操作组合快捷

2021-04-20 22:22:16 107

滑动组件悬浮固定在顶部

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

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关注的人

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