如何在android中的图像上应用不同的颜色过滤器?

时间:2016-12-28 04:38:57

标签: android image image-processing

我无法弄清楚如何在图像上应用滤镜。

在这种情况下,我希望图像更暗(黑色,40%透明度,图像顶部的图层会给我我想要的结果)。但是,如果我知道如何将图层放在任何颜色的图像上(具有一定的透明度),以使其在视觉上与应用程序的其他UI元素更加兼容,将会有所帮助(将来)。

How it looks

现在的样子。

enter image description here

我希望它如何在应用程序上查看(上面的图像已经在Adobe Illustrator中编辑过,但是如果我使用它,即使它的大小不大,应用也会反复崩溃)

另外,我怀疑在android studio中必须有一种方法可以在不需要任何图像编辑软件的情况下完成此操作。

如果我错了,请纠正我;)

6 个答案:

答案 0 :(得分:8)

这就是我的工作,

 imageView =(ImageView) findViewById(R.id.image_view) ;
 imageView.getDrawable().setColorFilter(0x76ffffff, PorterDuff.Mode.MULTIPLY );

颜色范围[0x00000000 -0xffffffff]

如果您不理解这种模式可能会对您有所帮助

  

红色 - 0xffff0000

     

绿色-0xff00ff00

     

蓝色 - 0xff0000ff

     

您的要求平均黑色为0xff555555

根据需要更改颜色代码> here

out put

enter image description here enter image description here enter image description here enter image description here

更多:

setColorFilter params:(int color,                 PorterDuff.Mode模式)

What does PorterDuff.Mode mean

答案 1 :(得分:1)

您可以使用对象的android:foreground属性在任何对象上设置颜色。在这里,我使用ImageView来显示图片,android:foreground使用过滤器!

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/yourImage"
    android:foreground="#60000000" />
</RelativeLayout>

如果你想做这个布局,那么使用android:background属性代替android:src作为图像源。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/yourImage"
    android:foreground="#60000000">

</RelativeLayout>

答案 2 :(得分:0)

试试这个:

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/black"/>

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:alpha=".5"
            android:src="@drawable/your_naruto_img"/>

    </RelativeLayout>

当然,您可以通过更改android:alpha [0 - 1]来相应地调整不透明度

希望这有帮助!

答案 3 :(得分:0)

使用任何在线工具为较暗的图像生成9补丁图像,并在您的应用中使用该9补丁。它会起作用。

答案 4 :(得分:0)

试试这个:

System.Drawing.Bitmap

您可以将图像设置为<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/your_drawable"> <ImageView android:id="@+id/backImage" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#66000000" android:scaleType="fitXY"/> </RelativeLayout> 的背景。使用RelativeLayout标记并将背景设置为您要设置的imageview颜色。

答案 5 :(得分:0)

对我有用的是

ImageView backgroundimage = FindViewById<ImageView>(Resource.Id.img_view);
backgroundimage.SetColorFilter(Color.Argb(200,0,0,0), PorterDuff.Mode.Overlay);

尝试以上所有答案后。 希望它可以帮到某人。