Android - 实现背景效果的调光

问题描述 投票:1回答:1

我正在构建一个带有暗淡背景的闪屏。我使用RelativeLayout作为所有小部件的基础。为了创建和暗淡效果我创建了一个dim.xml,它基本上是一个黑色的形状(以后设置不透明度)。

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <solid android:color="#000000" />

布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:background="@drawable/background"
    android:id="@+id/ActivityLayout">

    <ImageView
        android:layout_width="240dp"
        android:layout_height="@dimen/abc_action_bar_default_height_material"
        android:layout_marginTop="98dp"
        android:layout_marginRight="170dp"
        android:src="@drawable/logo"
        android:id="@+id/logo" />

</RelativeLayout>

有没有办法在RelativeLayout和小部件之间放置黑色形状,然后将一些alpha值设置为黑色形状以实现调光效果?

android android-layout
1个回答
2
投票

有没有办法在RelativeLayout和小部件之间放置黑色形状,然后将一些alpha值设置为黑色形状以实现调光效果?

您可以通过在RelativeLayout中添加另一个View并将其宽度和高度设置为“match_parent”来实现此目的,然后将View的背景颜色更改为您想要的颜色。

您的布局可能如下所示:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  ...  
>

<View android:width="match_parent"
      android:height="match_parent"
      android:background="@color/the_color_you_want"/>

<here are the widgets...>

</RelativeLayout>

更新:

但它并没有填满整个视口,然后每边大约有10dp的边距,并没有在整个屏幕上延伸。有没有办法填满整个屏幕?

这是因为你为RelativeLayout的左侧和右侧设置了10dp填充。有两种方法可以使颜色视图填充整个屏幕:

  1. android:clipToPadding="false"设置为RelativeLayout,然后将以下属性设置为颜色View:

机器人:layout_marginLeft = “ - 10dp” 机器人:layout_marginRight = “ - 10dp”

这很容易做到,但它可能会导致您的小部件出现问题,所以您可以尝试一下。

  1. 从你的paddingLeft中删除paddingRightRelativeLayout属性,因此你的颜色View将填满屏幕,然后重新排列你的小部件以确保他们的左或右边距是正确的。

您可能需要使用此方法做更多工作,但我确信这是一种正确的方法。

© www.soinside.com 2019 - 2024. All rights reserved.