ImageView上的透明视图

Ant*_*ine 6 android view transparent

我被封锁了.我正试图在背景上放置透明视图.我尝试了几种方法.

通过XML来:

android:background="@color/transparent"
Run Code Online (Sandbox Code Playgroud)

要么

android:color="#80000000"  
Run Code Online (Sandbox Code Playgroud)

或者像这样引用color.xml文件

<resources>
    <color name="transp">#80000000</color>
</resources>
Run Code Online (Sandbox Code Playgroud)

我的layout.xml就像这样

android:background="@color/transp"
Run Code Online (Sandbox Code Playgroud)

我也尝试过生成的代码

myView.getBackground().setAlpha(45);
Run Code Online (Sandbox Code Playgroud)

要么

myViewm.setBackgroundResource(R.color.trans);
Run Code Online (Sandbox Code Playgroud)

我看过一些相关的帖子,但没有一个答案奏效.

除此之外甚至更奇怪的是,所有这些解决方案似乎都在Eclipse的GraphicalLayout中得到了很好的解决.但是当我启动我的设备时,屏幕仍然不透明.我在该视图上画了一条线以确保发生了某些事情; 这条线确实显示出来.

这是我的layout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context=".MainActivity" >

      <ImageView
        android:id="@+id/backgroundview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:src="@drawable/space_bg"
        android:contentDescription="@string/desc" />

      <View 
        android:id="@+id/tileview"        
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/><!-- 
        android:background="@color/transp"/>-->

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

和我的代码

private ImageView bg;
    MyView tV;


    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

        tV = new MyView(this);

setContentView(tV);
Run Code Online (Sandbox Code Playgroud)

}

和myView onDraw

@Override
    protected void onDraw(Canvas canvas)    
    {

        super.onDraw(canvas);
        this.setBackgroundResource(R.color.transp);
        canvas.drawLine(10,20,30,40, paint);

    }
Run Code Online (Sandbox Code Playgroud)

那么,我错在哪里?谢谢!!!

Vik*_*ram 11

android:background="@color/transparent"
Run Code Online (Sandbox Code Playgroud)

您可以使用transparentandroid资源中提供的颜色:

android:background="@android:color/transparent"
Run Code Online (Sandbox Code Playgroud)

android:color="#80000000"  

<resources>
    <color name="transp">#80000000</color>
</resources>

myViewm.setBackgroundResource(R.color.trans);
Run Code Online (Sandbox Code Playgroud)

这会给你一个非常黑暗的灰色阴影.阿尔法值80最多是半透明的.


myView.getBackground().setAlpha(45);
Run Code Online (Sandbox Code Playgroud)

您可能没有正确使用它.


private ImageView bg;
MyView tV;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                 WindowManager.LayoutParams.FLAG_FULLSCREEN);

    tV = new MyView(this);

    setContentView(tV);
}
Run Code Online (Sandbox Code Playgroud)

这基本上取代了View膨胀的R.layout.activity_main(包含ImageView和其他小部件)MyView.我认为这不是你想要的.请尝试以下方法:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context=".MainActivity" >

    <ImageView
        android:id="@+id/backgroundview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:src="@drawable/space_bg"
        android:contentDescription="@string/desc" />

    <RelativeLayout 
        android:id="@+id/tileview"        
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@android:color/transparent" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/some_drawable_smaller_than_screen_size"
            android:layout_centerInParent="true" />

    </RelativeLayout>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

如何给这个xml充气:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                 WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(R.layout.activity_main);
}
Run Code Online (Sandbox Code Playgroud)

id="@+id/tileview"将是透明的id="@+id/backgroundview".

  • 男人......你是一个慷慨的天才!!!! ...这个有效!我的错误是我想在一个imageView上放一个视图?它为什么不起作用?现在,如果我想在该视图上绘制一些线条,我可以通过代码执行吗? (2认同)

小智 8

机器人:阿尔法=“0.5”

0.0 表示完全透明,0.5 表示中等透明 1.0 表示完全不透明。**这里 TextView 是透明的。

在此处输入图片说明.在此处输入图片说明

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

    <ImageView
        android:id="@+id/imageview_id"
        android:layout_width="match_parent"[![enter image description here][2]][2]
        android:layout_height="130dp"
        android:scaleType="centerCrop"
        android:src="@drawable/img3" />

    <TextView
        android:id="@+id/home_tvshow_textView_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:alpha="0.5"
        android:background="@color/red"
        android:gravity="center"
        android:text="Your String"
        android:textColor="@color/black"
        android:textSize="@dimen/sp_17"
        android:layout_marginTop="@dimen/dp_110"/>


</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)