有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java更改布局不透明度,Progressbar除外

我有一个使用循环进度条的应用程序

我想改变整个布局的不透明度,直到它完成加载

大概是这样的:

enter image description here

我使用以下方法更改布局的不透明度:

cl = findViewById( R.id.Discover_Layout );
cl.setAlpha( 0.45f );

但是,它也会改变ProgressBar的不透明度

我尝试使用:

cl = findViewById( R.id.Discover_Layout );
cl.setAlpha( 0.45f );

pb_Discover = findViewById( R.id.pb_Discover );
pb_Discover.setVisibility( View.VISIBLE );
pb_Discover.setAlpha( 1f );

但它仍然保持进度条的不透明度

如何从布局不透明度中排除ProgressBar

多谢各位


共 (2) 个答案

  1. # 1 楼答案

    我假设Discover_Layout是包含pb_Discover进度条的父布局。因此,更改父视图的不透明度也会反映在子视图中。您可以创建一个framelayout作为父布局,并添加Discover_Layout和pb_Discover作为两个独立的子视图。因此Discover_Layout不透明度的变化不会影响pb_Discover进度条

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/frame_layout_badge"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    
    <   Discover_Layout -/>
    
    <   pb_Discover -/>
    
    </FrameLayout>
    

    顺便说一下,最好以一个小字母开头命名视图ID

  2. # 2 楼答案

    我认为您的发现布局是progress view的父级。 你必须使背景视图不透明度