dim/blur 父布局背景

dim/blur a parent layout background

这里有与上述主题相同的问题 但没有得到答复

我这里有布局

我需要在底部布局中使用与顶部布局相同的图像,但使用模糊样式

设置 alpha 没有帮助 - 文本视图也会影响

如何模糊布局的背景

xml 这里

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:background="#ffffff">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:weightSum="105"
        android:orientation="vertical">
/// top layout with  image 
        <LinearLayout
            android:background="@drawable/s"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="45">



        </LinearLayout>


        ////  other set of layouts that i want to add the same iamge but in blur style
        <LinearLayout
            android:alpha="220"

            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="60"
            android:weightSum="75"
            android:orientation="vertical">



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

<TextView
    android:id="@+id/brand_name"
    android:layout_marginTop="10dp"
    android:textSize="25dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="SHAKY ISLES"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" />

                <ImageView
                    android:id="@+id/image_icon"
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:background="#000000"
                    android:layout_below="@+id/brand_name"
                    android:layout_centerHorizontal="true" />

                <TextView

                    android:text="  6 - 502 m"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBottom="@+id/image_icon"
                    android:layout_alignRight="@+id/brand_name"
                    android:layout_alignEnd="@+id/brand_name"
                    android:layout_below="@+id/brand_name" />

            </RelativeLayout>

            <RelativeLayout

                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="20">

                <TextView
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:id="@+id/discription"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here. "
                    android:layout_centerVertical="true"
                    android:layout_centerHorizontal="true" />

                <View
                    android:id="@+id/boder"
                    android:layout_marginLeft="30dp"
                    android:layout_marginRight="30dp"
                    android:layout_width="match_parent"
                    android:layout_height="1dp"
                    android:background="#000000"></View>




            </RelativeLayout>

            <RelativeLayout

                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="30"
               >

                <TextView
                    android:id="@+id/address"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="22, Customs St E ,Auckland"
                    android:layout_centerVertical="true"
                    android:layout_centerHorizontal="true" />

                <View
                    android:id="@+id/down_border"
                    android:layout_alignParentTop="true"
                    android:layout_marginLeft="30dp"
                    android:layout_marginRight="30dp"
                    android:layout_width="match_parent"
                    android:layout_height="1dp"
                    android:background="#000000"></View>

            </RelativeLayout>



        </LinearLayout>

    </LinearLayout>



</LinearLayout>

有什么帮助吗?

即使代码没有 xml

在 xml

试试这个
android:alpha="0.5"

或代码

yourView.getBackground().setAlpha(100);

试试这个代码

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:background="#ffffff">


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="105"
    android:orientation="vertical">
    /// top layout with  image
    <LinearLayout
        android:background="@drawable/s"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="45">



    </LinearLayout>

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="60"
        android:weightSum="75"
        >
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent" 
           android:alpha="0.5"
            android:adjustViewBounds="true"
            android:scaleType="fitXY"
            android:src="@drawable/s"/>

        <LinearLayout


            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="60"
            android:weightSum="75"
            android:orientation="vertical">



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

                <TextView
                    android:id="@+id/brand_name"
                    android:layout_marginTop="10dp"
                    android:textColor="@color/BlackColor"
                    android:textSize="25dp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="SHAKY ISLES"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true" />

                <ImageView
                    android:id="@+id/image_icon"
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:background="#000000"
                    android:layout_below="@+id/brand_name"
                    android:layout_centerHorizontal="true" />

                <TextView

                    android:text="  6 - 502 m"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBottom="@+id/image_icon"
                    android:layout_alignRight="@+id/brand_name"
                    android:layout_alignEnd="@+id/brand_name"
                    android:layout_below="@+id/brand_name" />

            </RelativeLayout>

            <RelativeLayout

                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="20">

                <TextView
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:id="@+id/discription"
                    android:layout_width="wrap_content"
                    android:textColor="@color/BlackColor"
                    android:layout_height="wrap_content"
                    android:text="22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here.22, Customs St E ,Auckland and discription here. "
                    android:layout_centerVertical="true"
                    android:layout_centerHorizontal="true" />

                <View
                    android:id="@+id/boder"
                    android:layout_marginLeft="30dp"
                    android:layout_marginRight="30dp"
                    android:layout_width="match_parent"
                    android:layout_height="1dp"
                    android:background="#000000"></View>




            </RelativeLayout>

            <RelativeLayout

                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="30"
                >

                <TextView
                    android:id="@+id/address"
                    android:layout_width="wrap_content"
                    android:textColor="@color/BlackColor"
                    android:layout_height="wrap_content"
                    android:text="22, Customs St E ,Auckland"
                    android:layout_centerVertical="true"
                    android:layout_centerHorizontal="true" />

                <View
                    android:id="@+id/down_border"
                    android:layout_alignParentTop="true"
                    android:layout_marginLeft="30dp"
                    android:layout_marginRight="30dp"
                    android:layout_width="match_parent"
                    android:layout_height="1dp"
                    android:background="#000000"></View>

            </RelativeLayout>



        </LinearLayout>

    </FrameLayout>

    ////  other set of layouts that i want to add the same iamge but in blur style

</LinearLayout>

先生sisara 模糊你的观点试试这个代码 为你做了一些编码

public class MainActivity extends Activity {
    private ImageView imViewAndroid;

    private TextView discriptionn;
    private TextView statusText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test_layout);
        imViewAndroid = (ImageView) findViewById(R.id.image);

        discriptionn = (TextView) findViewById(R.id.discription);
        statusText = addStatusText((ViewGroup) findViewById(R.id.relative_layout_down));
        applyBlur();


    }

    private void applyBlur() {
        imViewAndroid.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
            @Override
            public boolean onPreDraw() {
                imViewAndroid.getViewTreeObserver().removeOnPreDrawListener(this);
                imViewAndroid.buildDrawingCache();

                Bitmap bmp = imViewAndroid.getDrawingCache();
                blur(bmp, discriptionn);
                return true;
            }
        });
    }

    @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
    private void blur(Bitmap bkg, View view) {
        long startMs = System.currentTimeMillis();

        float radius = 20;

        Bitmap overlay = Bitmap.createBitmap((int) (view.getMeasuredWidth()),
                (int) (view.getMeasuredHeight()), Bitmap.Config.ARGB_8888);

        Canvas canvas = new Canvas(overlay);

        canvas.translate(-view.getLeft(), -view.getTop());
        canvas.drawBitmap(bkg, 0, 0, null);

        RenderScript rs = RenderScript.create(MainActivity.this);

        Allocation overlayAlloc = Allocation.createFromBitmap(
                rs, overlay);

        ScriptIntrinsicBlur blur = ScriptIntrinsicBlur.create(
                rs, overlayAlloc.getElement());

        blur.setInput(overlayAlloc);

        blur.setRadius(radius);

        blur.forEach(overlayAlloc);

        overlayAlloc.copyTo(overlay);

        view.setBackground(new BitmapDrawable(
                getResources(), overlay));

        rs.destroy();
        statusText.setText(System.currentTimeMillis() - startMs + "ms");
    }

    @Override
    public String toString() {
        return "RenderScript";
    }

    private TextView addStatusText(ViewGroup container) {
        TextView result = new TextView(MainActivity.this);
        result.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
        result.setTextColor(0xFFFFFFFF);
        container.addView(result);
        return result;
    }
}

我用过这个,对我真的很有帮助..

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/select_country_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/gray_background"
    tools:context=".startupscreen.controller.SelectCountryActivity">



</RelativeLayout>

创建背景xml

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

    <item>
        <shape android:shape="rectangle">
            <solid android:color="#636262"/>
        </shape>
    </item>

</selector>

现在终于在 java 文件中

 relativeLayout = findViewById(R.id.select_country_main);
        relativeLayout.getBackground().setAlpha(200);

我自己找到的最简单的解决方法:

在您的 xml 布局文件中使用 FrameLayout。将高度和宽度设置为 match_parent,然后在其中使用 alpha 值。将 Framelayout 写在父布局标签的正下方。

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".Add_Detail"
    tools:showIn="@layout/activity_add__detail">

<FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/niki"
        android:alpha="0.1"
        />
....

</RelativeLayout>