9

アプリを起動するActivityと、透明なヘッダーが表示され、現在背景に表示されているものはすべてぼやけます。

ここに画像の説明を入力

透明感を出すことができました。しかし、背景をぼかす方法がわかりません。たとえば、ホーム画面からアプリを起動すると、ホーム画面は表示されますがぼやけて表示されます。

Framebuffer を使用して現在表示されているデータを取得するという考えがありますが、それをビットマップに変換して、画像を保存せずにデータを直接使用せずに画像を描画する方法を教えてください。

また、電源ボタンと音量ボタンを押すとスクリーンショットを撮ることができることも知っています。それを行うためのアンドロイドのコードがどこにあるのか、誰にも分かりますか? 私のアプリはシステムにアクセスできます。

4

2 に答える 2

5

背景をぼかすには?

RenderScriptサポートライブラリで利用できます

public class BlurBuilder {
    private static final float BITMAP_SCALE = 0.4f;
    private static final float BLUR_RADIUS = 7.5f;

    public static Bitmap blur(Context context, Bitmap image) {
        int width = Math.round(image.getWidth() * BITMAP_SCALE);
        int height = Math.round(image.getHeight() * BITMAP_SCALE);

        Bitmap inputBitmap = Bitmap.createScaledBitmap(image, width, height, false);
        Bitmap outputBitmap = Bitmap.createBitmap(inputBitmap);

        RenderScript rs = RenderScript.create(context);
        ScriptIntrinsicBlur theIntrinsic = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
        Allocation tmpIn = Allocation.createFromBitmap(rs, inputBitmap);
        Allocation tmpOut = Allocation.createFromBitmap(rs, outputBitmap);
        theIntrinsic.setRadius(BLUR_RADIUS);
        theIntrinsic.setInput(tmpIn);
        theIntrinsic.forEach(tmpOut);
        tmpOut.copyTo(outputBitmap);

        return outputBitmap;
    }
}

詳細については、このリンクを参照してください

または、ぼかしを使用できます

それを行うためのアンドロイドのコードがどこにあるのか、誰にも分かりますか?

アプリ画面のスクリーンショットを撮るには、このリンクを参照してください

于 2015-08-15T04:55:53.263 に答える
4

これを使用して、編集テキストの背景にぼかし効果を与えました。好みに応じて変更し、不透明度をいじることができます。

<?xml version="1.0" encoding="utf-8"?><!--  res/drawable/rounded_edittext.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:centerColor="#33FFFFFF"
        android:endColor="#33FFFFFF"
        android:gradientRadius="270"
        android:startColor="#33FFFFFF"
        android:type="radial" />
    <corners
        android:bottomLeftRadius="25dp"
        android:bottomRightRadius="25dp"
        android:topLeftRadius="25dp"
        android:topRightRadius="25dp" />
</shape>

または、これ またはこれに興味があるかもしれません

もう 1 つの代替手段として、小さなぼかしビットマップを使用して繰り返すことができます。

    <xml version="1.0" encoding="utf-8"?>
    <LinearLayout
    android:id="@+id/MainLayout"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/backrepeat"
    >

次に準備します。

    <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
        android:src="@drawable/back" 
        android:tileMode="repeat" />
于 2015-08-15T04:53:42.290 に答える