Делаем линейную разметку полупрозрачной и размытой - PullRequest
6 голосов
/ 25 января 2012

Итак, я пытаюсь создать полупрозрачный и размытый фон для линейного макета.

Прямо сейчас у меня есть линейная раскладка, которая полностью черная, скрывающая некоторую информацию, которую необходимо купить, чтобы показать ключ, однако мне бы хотелось, чтобы он был размытым, не полностью покрытым, поскольку он разрушает раскладку, он должен оставаться там , просто размыто и неразборчиво.

Спасибо за вашу помощь!

Ответы [ 3 ]

2 голосов
/ 25 января 2012

Я не уверен в Linearlayout. Но для вашей активности вы можете попробовать это.

GetWindow (). setFlags (WindowManager.LayoutParams.FLAG_BLUR_BEHIND, WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

и используйте метод setContentView(R.layout.your_layout);

0 голосов
/ 25 января 2012

Как насчет использования GLSurfaceView:

http://developer.android.com/resources/articles/glsurfaceview.html

В Android SDK есть пример получения полупрозрачной поверхности (app / TranslucentActivity.java), по сути, настройка альфа-канала:

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

    // Create our Preview view and set it as the content of our
    // Activity
    mGLSurfaceView = new GLSurfaceView(this);
    // We want an 8888 pixel format because that's required for
    // a translucent window.
    // And we want a depth buffer.
    mGLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
    // Tell the cube renderer that we want to render a translucent version
    // of the cube:
    mGLSurfaceView.setRenderer(new CubeRenderer(true));
    // Use a surface format with an Alpha channel:
    mGLSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
    setContentView(mGLSurfaceView);
}

Другие темы по использованию альфа-канала:

Размытие альфа-канала

Как размыть и затемнить изображение, которое будет использоваться в качестве фона деятельности?

размытие изображения на андроиде

Другим примером является приложение / TranslucentBlurActivity.java (из Android SDK):

public class TranslucentBlurActivity extends Activity {
    /**
     * Initialization of the Activity after it is first created.  Must at least
     * call {@link android.app.Activity#setContentView setContentView()} to
     * describe what is to be displayed in the screen.
     */
    @Override
    protected void onCreate(Bundle icicle) {
        // Be sure to call the super class.
        super.onCreate(icicle);

        // Have the system blur any windows behind this one.
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
                WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

        // See assets/res/any/layout/translucent_background.xml for this
        // view layout definition, which is being set here as
        // the content of our screen.
        setContentView(R.layout.translucent_background);
    }
}
0 голосов
/ 25 января 2012

Если вы хотите сделать какой-либо фоновый вид прозрачным, используйте код ниже

 android:background="@null" 

, он подойдет для EditText.И AFAIK это должно работать для любого представления. Так однажды попробуйте для этого

...