Android 边角擦除符号的实现

C语言混淆代码:从艺术混淆到工程实践的深度解析 代码混淆技术通常分为工程混淆与艺术混淆两类。工程混淆主要用于代码保护,通过增加逆向分析难度来保障软件安全,常见于Android应用加固或Unity项目打包。而艺术混淆则是一种趣味性探索,它通过极致利用编程语言的语法边界和编译器特性,创造出看似混乱却能运行的代码。这种实践虽然违背了软件工程的可读性与可维护性原则,却具有独特的技术价值:它能深度检验开发者对语言标准、内存模型和编译器行为的理解,例如对未定义行为的掌握或对预处理机制的运用。从应用场景看,分析混淆代码有助于构建底层调试思维,提升在性能优化或安全攻防中 阅读详情

Android 边角擦除符号的实现

最近遇到一个问题,就是怎么弹出一个边角带有擦除符号的view,其实挺简单的,主要就是给dialog设置一个透明的背景就好了,不过通过这个案例我又发现一个比较有趣的现象,感觉挺有意思的,就打算记录一下。先看效果图:

"效果图"

很简单,就是弹出一个dialog, 然后右上角有个close的擦除符号,点击之后会关闭dialog, 这个主要就是给dialog设置一个透明的背景即可。其次,第二点不知道大家有没有注意到,就是当跳转到第二个界面的时候,然后按下home键,然后再次打开应用的时候,发现第二个界面已经销毁了,这是为什么呢?(ps:第一个界面我设置了singleTask的启动模式,第二个界面设置了透明的样式) ,可以思考一下。。。

  • 先说dialog的实现,代码很简单了,直接上代码:

MyDialog.java

public class MyDialog extends Dialog {

    private ImageView close;
    private Context context;

    public MyDialog(Context context) {
        super(context);

        this.context = context;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog_jiaobiao_layout);

        close = (ImageView) findViewById(R.id.dialog_img_close);

        close.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(context, "取消", Toast.LENGTH_SHORT).show();
                MyDialog.this.cancel();
            }
        });
    }
}

其中dialog对应的布局如下:

dialog_jiaobiao_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="200dp">

    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="20dp"
        android:padding="10dp"
        app:cardBackgroundColor="@color/color_5a79b7"
        app:cardCornerRadius="5dp"
        app:cardElevation="10dp">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="10dp"
            android:text="XXXX提示信息。。。"
            android:textColor="#fff"/>

    </android.support.v7.widget.CardView>

    <ImageView
        android:id="@+id/dialog_img_close"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:src="@mipmap/close"/>

</RelativeLayout>

为了看起来有点立体感,我TextView外层包裹了一个CardView,然后就是一个简单的相对布局,将取消符号图片放在右上角即可, 但是如果只是这样的话是不行的,还要将dialog设置透明才能达到这种效果,紧接着在MainActivity中这样实现即可:

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "xyzz";

    private Context mContext=this;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.d(TAG, "onResume() returned: " + "Mainactivity : onResume");
    }

    public  void  showDialog(View view) {
        MyDialog dialog=new MyDialog(mContext);
        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
        dialog.setCancelable(true);
        dialog.show();
    }

    public void skip(View view){
        startActivity(new Intent(mContext, TransparentActivity.class));
    }
}

当弹出dialog的时候,通过dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); 来将dialog设置透明,这样就可以了。

  • 然后说说另一种现象,就是跳转到第二个界面的时候,点击home键,然后再次进入应用,第二个界面被销毁了

    其实我是将MainActivity设置成singleTask的启动模式,将第二个Activity设置成透明样式,当点击home键,再次点击应用的时候,由于第二个界面是透明的,所以会走MainActivityon的onResume生命周期方法,由于MainActivity是singleTask启动模式,所以再次启动它的时候会将位于它之上的Activity实例给清理掉,所以第二个界面就被销毁了。

第二个界面也就是TransparentActivity,就是给它的theme设置了一个透明的样式,布局中也就一个TextView,就不贴TransparentActivity代码了

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="me.sunlight">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

        <activity
            android:name=".TransparentActivity"
            android:theme="@style/TransparentTheme"/>
    </application>

</manifest>

TransparentTheme

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>


    <style name="TransparentTheme" parent="AppTheme">

        <item name="android:windowBackground">@color/transparent</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>

    </style>

</resources>
测试工程师的不可替代性:从找bug到质量协作者 软件测试已超越传统‘发现缺陷’的职能,演变为保障系统可靠性、业务连续性与交付效率的核心工程能力。其底层原理在于通过风险建模、生产环境仿真与跨职能协同,将质量验证前移至需求与开发阶段。技术价值体现在降低线上故障隐性成本、提升版本交付确定性、支撑AI/金融/车规等高可信场景合规落地。典型应用场景包括混沌工程验证、契约测试、公平性评估及质量度量体系建设。本文聚焦测试人员如何以业务影响量化、技术根因穿透和协作接口设计,实现从执行者到项目质量合伙人的角色跃迁。 阅读详情

相关推荐

豆包2026深度指南:从AI聊天工具到生活操作系统

AI助手已进入实用化拐点,不再停留于问答与生成,而是演变为可感知、可交付、可信赖的‘生活操作系统’。其核心支撑是多模态理解、智能体(Agent)任务闭环与场景化大模型矩阵——如视觉识别药品说明书、方言语音直连长辈模式、拍照即生成菜谱等能力,本质是意图识别+工具调用+跨模态对齐的技术落地。这类系统正重塑家庭照护、学生学习、职场提效等高频场景,让技术隐形于真实需求之后。本文聚焦豆包在2026年实现的‘可触摸的温度’与‘可验证的准确’两大实用特性,详解其如何通过Mini/Pro/Code等专用模型与Agent执行

weixin_33738578的博客 347

图片上添加自定义标记,可点击,可删除,可长按移动

感谢作者无缘公子的文章:https://blog.youkuaiyun.com/zuiwuyuan/article/details/52105176 本文根据自身需求做了修改,实现点击添加标记,此文做记录 演示图 好了,不想废话,源码很简单,直接上: public class ImageLayout extends FrameLayout implements View.OnClickListener { private static final String TAG = "ImageLa

qq944639839的博客 943

Android撕衣服效果,擦除图片效果

是一个以前大学里经常玩的斯衣服!哈哈,滑动把美女的外衣撕掉!

Android 11----瀑布屏初识

文章目录Android 11----瀑布屏初识声明瀑布屏简介瀑布屏系统配置瀑布屏API接口关键APIlayoutInDisplayCutoutMode 窗口属性官方相关技术文档瀑布屏应用适配调试应用适配瀑布屏参考资料修改说明 Android 11----瀑布屏初识 声明 博客地址:http://blog.youkuaiyun.com/luzhenrong45 瀑布屏简介 最近开始适配Android R,因此需要对Android R上的一些新特性功能进行大致了解,其中就有包括Google对瀑布屏的原生支持。瀑布屏手机是

一路到黑 8384

android擦除效果代码(橡皮擦)

android擦除效果代码(橡皮擦功能)

《数据结构》02-线性结构1 两个有序链表序列的合并

题目 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。 函数接口定义: List Merge( List L1, List L2 ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next;...

叫我皮卡丘 7665

Android面试题详解之泛型是什么,泛型擦除呢?

然而在泛型中却不符合此规则,因为 Java 编译器帮我们处理了这种情况,在泛型中引入了"Bridge Method"—桥方法。Jdk中实现的泛型实际上是伪泛型,例如泛型类 Fruit ,编译时 T 会被擦除,成为 Object。方法,一个参数为 String 类型,一个参数为 Object 类型,参数为 Object 类型。在Java中有着重要的地位,在面向对象编程及各种设计模式中都有非常广泛的应用。这明显是两个不同的方法,按照Java的重写规则,子类并没有重写父类的方法,而是重载。

Misdirection_XG的博客 304

跟着团子学SAP CO:揭秘结果分析码在项目结算中的实战应用(一)KKA2/CJ88

本文深入解析了SAP CO模块中结果分析码在项目结算中的核心作用。以KKA2(方法10)和事务代码CJ88为例,详细阐述了如何在项目完工后一次性确认收入的场景下,通过结果分析功能实现收入与成本的精准匹配,将项目成本暂估为在制品,确保各期利润的准确反映。

gamma的博客 686

Android 画图 擦除开发

前言 之前写过一个Android的画图类,自定义View实现的,其中的擦除效果很不自然,每次擦除都会将线条整条删除,而不是手指指到哪里就擦除哪里,很不自然。一直没有想明白如何做,直到看到了这篇文章:。 结合文章的方法和自己的理解进行了重写,完成了安卓的画图效果。 绘制顺序 如上图所示,首先是绘制的顺序: 原理很简单,首先我们将底层的Bitmap绘制出来,也就是绘制mCacheBit...

博客 4310

三维(点云)语义分割概述以及方法总结

语义分割 语义分割需要两部分 classification: 需要全局信息 segmentation:更加依赖全局信息和局部信息 一般的网络结构是: 提特征-特征映射-特征图压缩(降维)-全连接-分类,其实就是encoder-decoder的过程, 比如在二维的的pspnet,fcn等等 0. 三维表示的数据结构 Point cloud 无序性 点云实际上是无序的,比如有8个点云,你放到...

renhaofan的博客 3万+

从Excel到Power Pivot:构建你的第一个商业智能分析模型

本文详细介绍了如何从Excel升级到Power Pivot,构建你的第一个商业智能分析模型。通过激活Power Pivot功能、导入数据、建立表关系、创建智能度量值以及打造交互式仪表盘,帮助用户高效处理百万行级别的数据,实现数据自动关联和动态分析,大幅提升商业决策效率。

weixin_30629653的博客 256

Android实现素材擦除功能

一、背景如果有这样一个需求,需要擦除的是素材而保留背景图片,并且保存的时候能将背景图片和素材重新绘制到一起生成一张新的图片,这张图片大小比例就和原图一样,只不过上面多了素材。之前在网上找过橡皮檫的实现,大多数是以整张view作为画板,但是这个需求情况下就不能使用整张view作为画板了,不然保存的时候还要裁剪出素材,一不小心还把素材大小什么的搞乱了,这时候就需要另一种办法了 二、实现先重写view的...

梦翼-的博客 1238

[WeChatMsg]导出csv格式微信聊天记录的手把手教程

手把手教大家如何导出自己的聊天记录得到csv文件,即使是电脑小白也可以轻松学会o(* ̄▽ ̄*)ブ

weixin_51094633的博客 1万+

android:padding="10dp",Android 边角擦除符号的实现

Android 边角擦除符号的实现最近遇到一个问题,就是怎么弹出一个边角带有擦除符号的view,其实挺简单的,主要就是给dialog设置一个透明的背景就好了,不过通过这个案例我又发现一个比较有趣的现象,感觉挺有意思的,就打算记录一下。先看效果图: 很简单,就是弹出一个dialog, 然后右上角有个close的擦除符号,点击之后会关闭dialog, 这个主要就是给dialog设置一个透明的背景即可。...

weixin_39621379的博客 315

开源DIY龙门架:从零构建可编程运动控制平台

运动控制是自动化与机器人技术的核心基础,它通过精确指令驱动执行机构,实现物体的定位与轨迹规划。其原理通常涉及控制器、驱动器、电机与传动机构的协同工作,核心价值在于将数字指令转化为精准的物理运动,从而解放人力并提升作业一致性。在工业自动化、桌面制造(如3D打印、激光雕刻)及教育机器人等领域应用广泛。本文聚焦于一个具体的工程实践案例:使用**铝型材**、**3D打印**零件、Arduino控制器及步进电机,从机械结构设计、电路连接到代码编写,手把手教你打造一个模块化、可扩展的开源龙门架系统。该系统不仅成本可控,

weixin_33168937的博客 621

从Live2D到Unreal Engine:2D与3D虚拟数字人核心技术实现路径解析

本文深入解析了从Live2D到Unreal Engine的2D与3D虚拟数字人核心技术实现路径,涵盖技术选型、制作流程与优化技巧。通过对比2D骨骼动画与3D建模渲染的差异,结合实战案例,帮助开发者根据项目需求选择合适方案,提升虚拟数字人的交互体验与视觉效果。

weixin_30379531的博客 149

micro hdmi引脚定义义_横扫三大系统,10+16自定义键加持的绘王Huion H1161数位板评测...

序 十年前用过WACOM的手写板和数位屏,当时的板子可用尺寸比较小,压感大多在512和1024级,手绘感觉差强人意。今天体验的绘王INSPIROY H1161数位板,压感达到了8192级,读取速率达到了266PPS,绘制区域达到了279*174mm,接近A4纸幅面,产品轻薄,适配各种操作系统和设计、绘图软件,接下来一起进行体验感受。感谢绘王科技,感谢亿智蘑菇!!外观设计篇绘王品牌LOGO,三个铅笔...

weixin_39976575的博客 862

基于MATLAB实现语音信号MFCC特征提取(附完整代码)

你有没有想过你的智能手机是如何理解语音指令的?或者 Alexa 和 Siri 等语音助手如何处理您的命令?这种卓越能力背后的机制在很大程度上归功于一种称为 Mel 频率倒谱系数 (MFCC) 的方法。语音识别技术允许机器解释人类语音,将口语转换为计算机可以操纵的格式。这项技术对于开发交互式和响应式 AI 至关重要,例如声控助手、自动化客户服务系统和实时翻译服务。MFCC 代表 Mel 频率倒谱系数。这是用于自动语音和说话人识别的功能。

baidu_34971492的博客 1314

Android 自定义View——蒙版擦除效果实现

在《Android PorterDuff.Mode图形混合处理 》这篇博客中,我们讲解了PorterDuff.Mode对图形混合的处理。这篇我们将通过图形混合的原理,来制作一个手动擦除蒙版显示底层图片的控件。      可能我这样描述这节的内容,大家还是不太理解到底要做什么。那我举几个例子,在QQ应用中,QQ聊天有一个功能就是发送手动绘制的图片,其实手动绘制图片这个功能就是通过一个自定义View

To_be_Designer 8564

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

总结一下之前通过升维数据结构的方式提高Android Path擦除速度的思路心得

如图: [外链图片转存中…(img-yX8iGNm4-1608307271542)] 在白板应用中,为了在擦除后保持线条的矢量特性,之前的算法是: 0 从线条第一个坐标开始,记录该坐标为start,遍历该坐标,判断是否和矩形相交。 1 如果相交,则当前遍历点为end,start到end重新构成一条线条。 2 继续遍历原线条,找到不相交点,记录为start, ...

轮子初级玩家 510

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Android笔记---实现简单的左上角(其他边角)倾斜的标签(环绕效果)

先上效果图吧 由于项目需要实现这种左上角倾斜环绕的标签效果,所以自己尝试着做一做,并记录下来。 实现的思路大致如下图: 主页面的布局结构如下: <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://sch...

DearLC的博客 1266

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

(9)有序边表填充算法

基本思想 对于一个给定的多边形,用一组水平扫描线进行扫描,对每一条扫描线均可求出与多边形的交点,这些交点将扫描线分割成落在多边形内部的区间和落在多边形外部的区间,并且两者相间排序。用要求的颜色显示这些区间的像素,即可完成填充工作。 多边形顶点处的扫描线交点的处理: 情况1:扫描线2与P6相交,若交点算一个,求得交点(x 坐标升序)序列P6 ,E,F。这将导致[P6, E]区间内的

革命队伍的螺丝钉 8263

举例说明在android中使用正则表达式去掉字符串中标点符号及其他一些特殊符号的方法

在android中使用正则表达式与在java中使用正则表达式是有区别的,比如使用正则表达式去掉一个字符串中的标点符号及一些特殊符号时,在java中可以使用的方法是: public static String format(String s){   String str=s.replaceAll("\\pP|\\pS|\\s", "");   return str;  }   而在a

Ada168855的专栏 9394

使用ZXing扫描多个二维码,条形码

通常情况下,我们在扫描二维码的时候是一个一个去扫的,那么能不能一次扫描多个二维码,一下解析所有结果呢?答案是有的,其实ZXing是给我们提供方法了。但是可惜的是,扫描条形码的时候,ZXing并没有给我们提供这样的方法,这就需要另想其他办法了先理一下,ZXing框架扫描解码的大致过程: 从摄像头拿数据,byte[] data 对数据进行解析,这里需要注意的是,ZXing提供了两个解析类,分别为Mult

imSunLight的博客 1万+

Android 调用系统相机,拍照,并上传图片所注意的一些问题

其实android拍照这个地方还是有很多注意事项的,我在上个项目中就遇到一些坑,因此我想把它记录下来,希望能帮助一些跟我遇到的同样的问题的人如果你在项目中遇到以下问题: 通过系统路径,拍出来的图片不清楚 在某些情况下,onActivityResult(int requestCode, int resultCode, Intent data) 回调方法中,data为null 有些时候,在某些手机拍照之

imSunLight的博客 1万+
上一篇: 程序员朋友们,假如你跟我有相同遭遇你会怎么做
下一篇: IDEA 构建 java web项目两种方式
imSunLight
博客等级 码龄11年 24粉丝 19原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值