android 透明窗体的使用

透明与窗体的设置 1. Custom Dialog Android支持自定义窗口的风格: 1)首先在资源里面建立style的value; example: <style name="Theme.CustomDialog" parent="android:style/Theme.Dialog"> <item name="android:windowBackground">@drawable/filled_box</item> </style> drawable/filled_box.xml <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#f0600000"/> <stroke android:width="3dp" color="#ffff8080"/> <corners android:radius="3dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> PS:关于Styles的学习,可以参见:http://code.google.com/android/reference/available-resources.html#stylesandthemes 2)设置当前activity的属性,两种方式:1.在manifest文件中给指定的activity增加属性 android:theme="@android:style/Theme.CustomDialog"。2.在程序中增加语句setTheme(R.style.Theme_CustomDialog); PS1:如果只是将Acticity显示为默认的Dialog, 跳过第一步,只需要在manifest文中增加属性:android:theme="@android:style/Theme.Dialog"或者在程序中增加setTheme(android.R.style.Theme_Dialog). PS2:其他创建Dialog的方法:创建app.Dialog类或者创建app.AlertDialog类。 Next Study:能不能在Activity已经打开以后动态修改当前Activity的风格? 在测试中发现,在onCreate()事件中增加setTheme(),必须在setContentView()之前,否则指定的Style不能生效 2.Custom Title Android除了可以为指定的Activity设置显示风格,此外也可以为指定的Activity设置一些特效,比如自定义Title,没有Title的Activity或者增加一个ICON等。 有意思的一点是,这些特效并不是你想设置的时候就行设置,你需要在Activity显示之前向系统申请要显示的特效,这样才能在下面的程序中为这些特效进行设置。(这样是不是多此一举有待研究) 为一个Activity设置自定义Title的流程: 1)为自定义的Title建立一个layout(custom_title_1.xml) <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/screen" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <TextView android:id="@+id/left_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:text="Left" /> <TextView android:id="@+id/right_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:text="Right" /> </RelativeLayout> 关于为什么采用RelativeLayout,可以参见:http://code.google.com/android/devel/ui/layout.html 2)为activity设定自定义Title特效并指定Title的layout: 在onCreate()事件中增加: requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.custom_title); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_1); 这三条语句的次序不能颠倒,依次为申请特效,创建view,设置特效属性。其中requestWindowFeature等价于getWindow().requestFeature() 3)在需要修改Title的地方,获取left_text或者right_text进行设置即可。 Next Study:Activity的其他显示特效 Window还有其他一些feature,比如FEATURE_CONTEXT_MENU,FEATURE_NO_TITLE,FEATURE_LEFT_ICON等,有待继续学习研究。 Translucent Android为透明效果提供了内置的Theme: android:style/Theme.Translucent,只需要把当前的activity的theme设置为这个Theme就可以达到完全透明的效果。 如果要半透明的话,可以增加一个继承该Theme的style即可,实现如下: <style name="Theme.Translucent" parent="android:style/Theme.Translucent"> <item name="android:windowBackground">@drawable/translucent_background</item> <item name="android:colorForeground">#fff</item> </style> <drawable name="translucent_background">#e0000000</drawable> 此外API Demo中提供了另一个实例,不用继承内置的Theme,可以自己完全创建一个新的style,实现透明效果,同时可以加一些其他特效,比如模糊化等,但我试了半天也没有搞定,完全复制代码,也没有出现这个效果,这个现在可能不是很重要的东西,等以后有时间再研究补充吧。 立即下载

/**
 * 窗口中间显示半透明提示框的小组件 用法:1. new 2. showPrevLetter(String prevLetter)
 *
 * @author LL
 *
 */
public class PrevLetterDialog {
 // 窗体消失的延时时间
 private static final int DELAYED_HIDEN = 10000000;

 // 实现Runnable接口的类
 private RemoveWindow mRemoveWindow = new RemoveWindow();
 // 在Handler里能实现对UI线程的修改
 private Handler mHandler;
 // 窗体管理器
 private WindowManager mWindowManager;
 // 显示在窗体中间半透明的字体框
 private TextView mDialogText;
 // 显示在窗体中间半透明的加载进度条
 private ProgressBar pb;
 // 是否正在显示中
 private boolean mShowing = false;
 // 是否准备好显示了
 private boolean mReady = true;
 // 显示在窗体中的字符
 private char mPrevLetter = Character.MIN_VALUE;

 private LayoutParams lp1;

 /**
  * 注明:context一定要在可见UI中通过getContext()获得,否则会抛异常。
  *
  * @param context
  */
 public PrevLetterDialog(Context context) {
  // 得到窗体管理器
  mWindowManager = (WindowManager) context
    .getSystemService(Context.WINDOW_SERVICE);

  // 得到布部创建者
  LayoutInflater inflate = (LayoutInflater) context
    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

  // 得到TextView
  // mDialogText = (TextView) inflate.inflate(R.layout.list_position,
  // null);
  // mDialogText.setGravity(Gravity.CENTER);
  // mDialogText.setText("王");
  // mDialogText.setLayoutParams(lp1);
  // mDialogText.setTextSize(80);

  // 得到ProgressBar

  pb = (ProgressBar) inflate.inflate(R.layout.window_position, null);
  pb.setBackgroundColor(Color.BLACK);

  // 窗体的布局参数1
  WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
    LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT,
    WindowManager.LayoutParams.TYPE_APPLICATION,
    WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
      | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
    PixelFormat.TRANSLUCENT);
  lp.gravity = Gravity.CENTER;

  // 窗体的布局参数2
  lp1 = new LayoutParams(130, 100,
    WindowManager.LayoutParams.TYPE_APPLICATION,
    WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
      | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
    PixelFormat.TRANSLUCENT);
  mDialogText = new TextView(context);
  lp1.gravity = Gravity.CENTER;

  // 通过handler把mDialogText展示出来
  mHandler = new Handler();
  // 要用post可实现在多线程里调用UI线程并改变
  mHandler.post(new Runnable() {
   public void run() {
    mReady = true;
    // 把TextView添加到窗体中去
    // mWindowManager.addView(mDialogText, lp1);
    mWindowManager.addView(pb, lp1);
   }
  });

 }

 // 设置可见性
 public void setmReady(boolean mReady) {
  this.mReady = mReady;
 }

 /**
  * 一般用在onScroll方法中,参数是字符串,不能为空,会取第一个字符显示
  *
  * @param prevLetter
  */
 public void showPrevLetter(String prevLetter) {
  if (!mReady) {
   return;
  }
  char firstLetter = prevLetter.charAt(0);

  if (!mShowing && firstLetter != mPrevLetter) {

   mShowing = true;
   mDialogText.setVisibility(View.VISIBLE);

  }
  // // 设TextView显示的字体
  // mDialogText.setText(((Character) firstLetter).toString());
  // 移除mRemoveWindow实现的Runnable接口类
  mHandler.removeCallbacks(mRemoveWindow);
  // 添加mRemoveWindow实现的Runnable接口类,并设延时
  mHandler.postDelayed(mRemoveWindow, DELAYED_HIDEN);
  mPrevLetter = firstLetter;

 }

 /**
  * 实现Runnable接口的类
  */
 private final class RemoveWindow implements Runnable {
  public void run() {
   removeWindow();
  }
 }

 private void removeWindow() {
  if (mShowing) {
   mShowing = false;
   mDialogText.setVisibility(View.INVISIBLE);
  }
 }

}

 

调用

 pd = new PrevLetterDialog(DisplayDocActivity.this, R.anim.loadfileanim,
    150, 150);
  pd.showPrevLetter("这");

 

 

 

硬件设计--DC/DC电源芯片详解 本文参考:http://www.elecfans.com/article/83/116/2018/20180207631874.html https://blog.youkuaiyun.com/wangdapao12138/article/details/79763343 第一次写博客,不喜勿喷,谢谢!!! DC/DC电源指直流转换为直流的电源,从这个定义上看,LDO(低压差线性稳压器)芯片也应该属于D... 阅读详情

相关推荐

在linux上本地大模型部署与推理

您的Python脚本(客户端)可能在您的个人电脑上,而模型服务(服务器)在远程Linux服务器上。如果您的服务器有强大的NVIDIA GPU,并且您对性能有更高的要求(例如需要高吞吐量),vLLM是更好的选择。这种方式无需向公网暴露服务器端口,而是通过加密的SSH通道将服务器的端口“映射”到您的本地电脑上。我们将启动一个API服务器,它会加载您指定的模型,并等待您的代码前来调用。如果您直接在SSH窗口运行上面的命令,一旦您关闭窗口,服务就会停止。这是根据您的原始代码修改的版本,适配本地vLLM服务。

frostmelody 全网同名,大家多多关注呀~ 持续分享优质内容! 2055

Android开发窗口实现半透明效果

  弹出popwindow的代码如下,比较乱,多包涵:   popupWindow = new PopupWindow(menuView, LayoutParams.FILL_PARENT,                                  LayoutParams.FILL_PARENT, true);                  popupWindow.sho...

kingOU0727的专栏 474

原生H5如何优雅拦截浏览器返回事件:全面屏侧滑退出的解决方案

本文深入探讨了在原生H5中如何优雅地处理浏览器返回事件,特别是针对全面屏手机侧滑返回手势的解决方案。核心是利用HTML5 History API,通过`history.pushState`方法在历史栈中插入记录,并监听`popstate`事件,从而实现在用户侧滑时平滑关闭全屏预览层而非直接退出页面,有效提升了移动端H5应用的原生交互体验。

i0j1k2l3m的博客 270

android透明窗体,android8.0.0(sdk=26)透明窗体 Only fullscreen activities can request orientation错误的解决方法...

android8.0版本做的处理,当一个Activity固定方向并且是透明的,在8.0版本中就会抛出异常:java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation会抛出异常的情况如下:ActivityInfo.isFixedOrientation(requestedOrien...

weixin_31572321的博客 376

从传统扫描到SSN:Tessent数据包技术如何减少90%测试时间

本文深入探讨了Tessent流式扫描网络(SSN)如何通过其核心的数据包技术,彻底改变芯片测试范式。该技术将测试数据封装成标准化数据包,在共享总线上进行智能路由与分发,实现了动态带宽分配与核心独立测试,从而将复杂SoC(如AI芯片)的总体测试时间大幅削减90%,并显著提升测试灵活性与可扩展性。

meat5的博客 492

ROS机器人全覆盖路径规划实战:6种ipa算法对比与选型指南(附避坑经验)

本文深入对比了ROS中ipa_coverage_planning功能包集成的6种全覆盖路径规划算法,包括牛耕分解、栅格旅行商、神经网络、局部能量最小、轮廓线和凸感知放置。文章从覆盖率、重复率、计算效率、动态避障等核心工程指标出发,提供了基于不同场景(如静态/动态环境、规则/复杂布局)的实战选型指南,并分享了神经网络和局部能量最小等关键算法的参数调优与避坑经验,旨在帮助开发者根据实际需求选择并优化最合适的ipa覆盖算法。

perl8的博客 363

android activity根节点addview_Android 超简单的夜间模式如何实现?

本文作者作者:唐子玄链接:https://juejin.im/post/6850037265085136910本文由作者授权发布。实现夜间模式有很多种方式,经过多次尝试,算是找到了一种性价比较高的方式。1主题方式这是最正统的方式,但工作量巨大,因为要全局替换 xml 布局中所有硬编码的色值,将其换成主题色。然后通过换主题达到换肤的效果。2窗口方式是不是可以在所有界面上罩一个半透明的窗口...

weixin_39707851的博客 248

复现论文报错解决

博主复现论文代码过程中遇到的各种报错及解决方案~

rellvera的博客 1060

三种方式展示透明界面

三种方式展示透明界面 分别是popwindow view Activity

Jeff169的博客 1895

Keil uVision5 STM32 startup_stm32f10x_md_vl.s error A3906U Malformed via file target not created..

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 2778

高通camx hal进程dump日志分析四:Node DumpDebugInfo原理分析

摘要: 本文讲解了高通Camx架构中DumpDebugInfo的原理,重点分析了Node组件的DumpDebugInfo()方法。该方法会输出Node自身调试信息,并调用DumpFenceErrors()接口输出Fence错误信息。具体包括:检查请求队列状态、输出未完成请求的元数据/完成状态/未处理Fence数量等关键信息,以及Fence错误原因(如延迟、未触发、结果失败等)。通过代码注释详细解析了各字段含义,为后续分析Dump异常日志提供理论基础。

785

Android设置窗体透明度

Android设置窗体透明度

leveretz的博客 1253

智能测试策略优化:平衡覆盖率、时间和资源

在软件开发过程中,测试是确保软件质量的关键环节。然而,测试工作往往面临着诸多挑战,其中如何在保证测试覆盖率的前提下,合理分配时间和资源是一个核心问题。本文章的目的在于探讨智能测试策略的优化方法,帮助软件测试团队在有限的时间和资源条件下,实现尽可能高的测试覆盖率。文章的范围涵盖了智能测试策略的核心概念、算法原理、数学模型、实际应用案例以及相关工具和资源等方面。本文将按照以下结构进行组织:首先介绍智能测试策略优化的背景和相关概念,包括核心术语和缩略词的定义;

AIGC应用创新大全的博客 620

android 设置透明度 标题栏 窗体透明

设置透明效果 大概有三种 1、用android系统的透明效果 Java代码  android:background="@android:color/transparent"  例如 设置按钮 Java代码      android:text="@+id/Button01"       android:id="@+id/Button01"       and

从零点零开始 5794

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

android 窗体透明、黑暗度、背景模糊

android 窗体透明的,黑暗度等的设置技巧 设置透明度(这是窗体本身的透明度,非背景) WindowManager.LayoutParams lp=getWindow().getAttributes(); lp.alpha=0.3f; getWindow().setAttributes(lp); alpha在0.0f到1.0f之间。1.0完全不透明,0

YanWei-Rookie 的博客 683

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Android培训武汉,武汉安卓培训之Android如何使用样式创建半透明窗体

安卓培训:本示例介绍如何使用Android系统样式和自定义样式创建半透明界面。1. 定义清单文件(AndroidManifest.xml)package="my.andriod.test"android:versionCode="1"android:versionName="1.0">android:label="@string/app_name"android:theme="@style/...

weixin_32430941的博客 106

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

android 窗体透明的,黑暗度等的设置技巧

设置透明度(这是窗体本身的透明度,非背景) 1 WindowManager.LayoutParams lp=getWindow().getAttributes();  2 lp.alpha=0.3f;  3 getWindow().setAttributes(lp); alpha在0.0f到1.0f之间。1.0完全不透明,0.0f完全透明 设置黑暗度 1 WindowManager.L...

weixin_34132768的博客 129

android中改变窗体透明度

在使用 popupwindow时,发现 弹出后,页面灰度(透明度)没有变化(变成灰色) 设置 窗体 参数 实现了效果 Activity act = (Activity) this.context; Window window = act.getWindow(); WindowManager.LayoutParams windowLP =

米小豆的博客 880

android 设置窗体本身为透明

来scdn已经很久很久了,工作中可以说百分之八十的知识都是来源于此,从今天开始mark一下工作中的小知识点。   以前一直没有研究过颜色,用个颜色代码直接往项目上贴,或者取色器直接取,今天领导要求popupwindow能透明,我蒙了,后来经同事提醒发现在代码值前加入b0 代码从6位变成了8位,则实现了透明效果。分享出来与大家交流。

qq_35285342的博客 481

android 窗口透明度,Android如何使用样式创建半透明窗体

本示例介绍如何使用Android系统样式和自定义样式创建半透明界面。1.定义清单文件(AndroidManifest.xml)package="my.andriod.test"android:versionCode="1"android:versionName="1.0">android:label="@string/app_name"android:theme="@style/Theme...

weixin_42561910的博客 498

android透明窗体,[FMX] Android 下模拟模态窗口(半透明效果)

FMX的 Android 平台下没有模态窗口的概念,具体原因俺就不清楚,也不多说。这里的模拟只是一种视觉效果上的模拟,并不是真正的模态窗口。先看一下效果:点击 ShowDialog 按钮时,显示上显示了一个半透明的窗口,将背景覆盖了,然后设置了一些内容,请用户操作。实际上要做的就是设置对话框窗口的几个属性:Fill.Color :设置为 C8000000 ,我用的是黑色的半透明的效果Fill.Ki...

weixin_34342091的博客 654

Android如何使用样式创建半透明窗体

本示例介绍如何使用Android系统样式和自定义样式创建半透明界面。 1. 定义清单文件(AndroidManifest.xml) xml version="1.0" encoding="utf-8"?> manifest xmlns:android="http://schemas.android.com/apk/res/android"       package="my.andr

FireOfStar的专栏 3380

Android 设置窗体透明度

转自    http://www.xuebuyuan.com/907908.html 1,设置窗体透明度 WindowManager.LayoutParams lp=getWindow().getAttributes();  lp.alpha=0.5f;  getWindow().setAttributes(lp); alpha在0.0f到1.0f之间。 2,设

Caster_Saber的专栏 3450

android 模态透明窗体,android 中弹出透明模态框

此文章有本人亲撰,但是下面所提到的code 并非本人所写写这篇日志的目的在于记录这个知识点防止以后忘记同时也希望能帮助可能用到这种效果的人!需求 就是通过 点击一个button 弹出来 类似于Dialog这样的效果这里我们可以通过两种方式实现第一种:就是通过dialog第二种:通过PopupWindow第一种如下重要的伪代码如下:我们需要通过 dialog 弹出来一个 listviewprivat...

weixin_39886612的博客 347

android 模态透明窗体,模态出一个半透明的viewcontroller

有些时候,需要一个半透明的视图来做筛选或者展示一些界面,但是又不想遮挡到下边的视图,有两种方式可以实现1、自定义一个半透明的view(当然,可以用xib来做,也不是很难),这个也是很好的一个方式。2、直接模态出一个viewcontroller,我们就来说说这个东西核心代码很简单//translucenceView的view背景色设为半透明的let translucenceView = transl...

weixin_36158843的博客 503

android窗体透明的,黑暗度等的设置技巧

<br /> <br />设置透明度(这是窗体本身的透明度,非背景)<br /><br />WindowManager.LayoutParams lp=getWindow().getAttributes();<br />                lp.alpha=0.3f;<br />              getWindow().setAttributes(lp);<br />                <br />alpha在0.0f到1.0f之间。1.0完全不透明,0.0f完全透明<br

何明桂的小窝 9029
上一篇: android webView加载页面时显示出全部网页内容
下一篇: android DES加密
VIPqiangqiang
博客等级 码龄14年 7粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值