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

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

【问题讨论】:

    标签: java android xml android-layout android-fragments


    【解决方案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_width="match_parent"
          android:layout_height="match_parent" >
          
          <ImageView
              android:id="@+id/imageView1"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:src="@drawable/ur_image" />
          
          <FrameLayout
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              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_width="match_parent"
              android:layout_height="match_parent">
              <android.support.v7.widget.AppCompatImageView
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:tint="@color/black_transparent"//transparent color 
                  android:scaleType="centerCrop"
                  android:src="@drawable/background_splash" />
          </FrameLayout>
          

          【讨论】:

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

          您可以使用色调。

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-10-10
            • 2015-08-12
            • 2012-05-09
            • 2017-06-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多