如何在android中的图像上放置黑色透明

Posted

技术标签:

【中文标题】如何在android中的图像上放置黑色透明【英文标题】:How to put black transparent on image in android 【发布时间】:2015-01-19 15:08:23 【问题描述】:

我有一个图像,我想在底部添加黑色透明以显示文本细节。从服务器我会得到我想转换的正常图像,如下所示。在下图中,您可以看到图像的底部是黑色透明的。

【问题讨论】:

【参考方案1】:

使用 FrameLayout 将另一个 ImageView 放在图像上方并将其设置为 src:

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

<gradient
    android:angle="270"
    android:startColor="#8000"
    android:endColor="#0000"/>

</shape>

【讨论】:

【参考方案2】:

这可以通过创建渐变来使用。检查this

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <gradient
                android:startColor="#4C4C43"
                android:endColor="#B8B894"
                android:angle="270" />
        </shape>
    </item>
</selector

>

【讨论】:

【参考方案3】:

你可以使用 alpha 属性

android:alpha="0.0" thats invisible
android:alpha="0.5" see-through
android:alpha="1.0" full visible

【讨论】:

【参考方案4】:

试试这个

<FrameLayout 
android:layout_
android:layout_ >

<ImageView
    android:id="@+id/imageView1"
    android:layout_
    android:layout_
    android:src="@drawable/ur_image" />

<FrameLayout
    android:layout_
    android:layout_
    android:background="@drawable/gradient_bg" >
</FrameLayout>

和 gradient_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <gradient
        android:angle="90"
        android:centerColor="#59000000"
        android:endColor="@android:color/transparent"
        android:startColor="#000000" />
</shape>

【讨论】:

这救了我的命。谢谢你:)【参考方案5】:

使用带有 tint 属性的 AppCompatImageView

<FrameLayout
    android:layout_
    android:layout_>
    <android.support.v7.widget.AppCompatImageView
        android:layout_
        android:layout_
        android:tint="@color/black_transparent"//transparent color 
        android:scaleType="centerCrop"
        android:src="@drawable/background_splash" />
</FrameLayout>

【讨论】:

纯透明色不需要渐变资源定义。简单是最好的。【参考方案6】:

您可以使用色调。

<ImageView
  ...
  android:tint:"#64000000"
  .../>

【讨论】:

以上是关于如何在android中的图像上放置黑色透明的主要内容,如果未能解决你的问题,请参考以下文章

如何设置放置在 ImageView 上的 textview 的背景不透明度

Android - 如何通过代码将图像放置在现有布局之上?

如何在android中为透明png图像添加描边/边框?

scss 在横幅中的背景图像上创建黑色透明覆盖

如何使用 CSS 为图像添加低调(黑色、透明叠加)效果?

在 Swift 中将 NSImage 放置在透明画布上