Android - 实现背景效果的调光

时间:2015-03-05 09:02:11

标签: android android-layout

我正在制作一个带有暗灰色背景的闪屏。我使用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值设置为黑色形状以实现调光效果?

1 个答案:

答案 0 :(得分: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,然后将以下属性设置为颜色视图:
  2.   

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

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

    1. paddingLeft移除paddingRightRelativeLayout属性,因此您的颜色View将填满屏幕,然后重新排列小部件以确保其左侧或右侧边距为正确的。
    2. 您可能需要使用此方法做更多工作,但我确信这是正确的方法。