Skocz do zawartości
daktarin

[android studio] Blurowanie widoku

    Rekomendowane odpowiedzi

    Cześć,

    potrzebuję namiarów na jakiś tutorial albo bibliotekę, którą mógłbym zaimplementować, tak aby np. po naciśnięciu przycisku cały widok "blurował" się. Coś jak na poniższym screenie:

    indeks.jpg

    Próbowałem z poniższym skryptem, ale on działa tylko w stosunku do bitmapy i w bardzo małym zakresie blurowania (radius większy niż 25 wykrzacza aplikację)

    package com.example.marcin.myapplication;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.os.Bundle;
    import android.renderscript.Allocation;
    import android.renderscript.Element;
    import android.renderscript.RenderScript;
    import android.renderscript.ScriptIntrinsicBlur;
    import android.support.v7.app.ActionBarActivity;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.SeekBar;
    import android.widget.SeekBar.OnSeekBarChangeListener;
    import android.widget.TextView;
    
    
    
    public class MainActivity extends AppCompatActivity {
    
        ImageView image3;
        Button button;
    
        Bitmap bitmapOriginal;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            button = (Button) findViewById(R.id.button);
    
            image3 = (ImageView) findViewById(R.id.image3);
    
            bitmapOriginal = BitmapFactory.decodeResource(getResources(),
                    R.drawable.image3);
    
          
            image3.setImageResource(R.drawable.image3);
     
        }
    
        private Bitmap createBitmap_ScriptIntrinsicBlur(Bitmap src, float r) {
    
    
    
            Bitmap bitmap = Bitmap.createBitmap(
                    src.getWidth(), src.getHeight(),
                    Bitmap.Config.ARGB_8888);
    
            RenderScript renderScript = RenderScript.create(this);
    
            Allocation blurInput = Allocation.createFromBitmap(renderScript, src);
            Allocation blurOutput = Allocation.createFromBitmap(renderScript, bitmap);
    
            ScriptIntrinsicBlur blur = ScriptIntrinsicBlur.create(renderScript,
                    Element.U8_4(renderScript));
            blur.setInput(blurInput);
            blur.setRadius(r);
            blur.forEach(blurOutput);
    
            blurOutput.copyTo(bitmap);
            renderScript.destroy();
            return bitmap;
        }
    
        public void bluruj(View view) {
            image3.setImageBitmap(createBitmap_ScriptIntrinsicBlur(bitmapOriginal, 25.0f));
        }
    }
    

    Znalazłem jeszcze coś takiego: http://allegro.tech/2015/08/android-fogger.html

    ale nie wiem jak to zastosować do swojego projektu. Może ktoś, coś?

    Dzięki!

     

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x