Opacity on a background Drawable image in View (using XML Layout)

纵然是瞬间 提交于 2019-11-29 16:21:19

问题


I was just wondering if there was a way to change the opacity of the background image for a View (ie. TextView, etc.).

I know that I can set the background image like this:

android:background="@drawable/my_drawable_image"

Or I can set a specific background colour with an alpha setting like this:

android:background="#10f7f7f7"

Is there a way I can control the opacity (set the alpha) if I'm setting the background as a drawable image? And I want to do this in the XML Layout. I already know that I could grab the Drawable object and programmatically set the alpha, but I want to see if I can do it in the layout.


回答1:


I ended up just going with the programmatical solution, since it doesn't look like it can be done via the XML layouts.

Drawable rightArrow = getResources().getDrawable(R.drawable.green_arrow_right_small);

// setting the opacity (alpha)
rightArrow.setAlpha(10);

// setting the images on the ImageViews
rightImage.setImageDrawable(rightArrow);



回答2:


This might make your Work simpler

View backgroundimage = findViewById(R.id.background);
Drawable background = backgroundimage.getBackground();
background.setAlpha(80);

Alpha Values 0-255, 0 means fully transparent, and 255 means fully opaque

from: This Answer




回答3:


You can also use XML to change the transparency:

android:alpha = "0.7"

The value of alpha ranges from 0 to 1




回答4:


You can embed the image in xml, so you'll be able to see it in the Graphical Layout

<LinearLayout
        style="@style/LoginFormContainer"
        android:id="@+id/login_layout"
        android:orientation="vertical" 
        android:background="@drawable/signuphead">

And change the code like this to make it transparent:

Drawable loginActivityBackground = findViewById(R.id.login_layout).getBackground();
loginActivityBackground.setAlpha(127);



回答5:


The answer you gave didn't exactly answer the question you asked. Here's what I did.

    Drawable login_activity_top_background = getResources().getDrawable(R.drawable.login_activity_top_background);
    login_activity_top_background.setAlpha(127);
    LinearLayout login_activity_top = (LinearLayout) findViewById(R.id.login_activity_top);
    login_activity_top.setBackgroundDrawable(login_activity_top_background);


来源:https://stackoverflow.com/questions/4968883/opacity-on-a-background-drawable-image-in-view-using-xml-layout

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!