2012-01-25 11 views
6

Quindi quello che sto cercando di fare è creare uno sfondo traslucido e sfocato su un layout lineare.Creazione di layout lineare traslucido e sfocato

In questo momento ho un layout lineare che è completamente nero coprendo alcune informazioni che una chiave deve essere acquistata per mostrare, tuttavia mi piacerebbe che fosse sfocata, non completamente coperta in quanto rovina il layout, deve rimanere lì, solo sfocato e illeggibile.

Grazie per il vostro aiuto!

+0

non sono sicuro, ha fatto u provare a mettere questo tag in manifest? android: theme = "@ android: style/Theme.Dialog" –

risposta

2

Non sono sicuro per Linearlayout. Ma per la tua attività puoi provarlo.

getWindow(). SetFlags (WindowManager.LayoutParams.FLAG_BLUR_BEHIND, WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

e utilizzare il metodo setContentView(R.layout.your_layout);

+1

sì, che funziona per la finestra, ma sul layout stesso non lo fa, per ulteriori chiarimenti i suoi due layout lineari affiancati (in orizzontale) e quello giusto ha bisogno di essere sfocato, ma ancora lì, e lo sfondo non è solido, quindi non può essere coperto, perché voglio ancora mostrare che cosa è lì ma è illeggibile – Samuel

+0

Non ho trovato alcun modo per applicare un layout lineare. Ma ho un'idea. Puoi usare la finestra per lo sfondo traslucido. E dove vuoi lo sfondo puoi applicare lo sfondo. E non applicare lo sfondo per quelli che non vuoi. Ad esempio, nel tuo caso puoi applicare lo sfondo per uno dei tuoi layout lineari a sinistra e non applicare alcuno sfondo per l'altro layout lineare. Penso che questo potrebbe funzionare. Non è il modo corretto però. – san

+0

la finestra tuttavia ha uno sfondo che è un'immagine non solida – Samuel

0

Se si vuole fare qualsiasi dall'alto Sfondo traslucido quindi utilizzare il codice qui sotto

android:background="@null" 

mi funziona per EditText. E per quanto ne so dovrebbe funzionare per qualsiasi view.So una volta provare per questo

+0

traslucido! = trasparente – Graham

0

ne dite di provare GLSurfaceView:

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

All'interno Android SDK c'è un esempio su come ottenere superficie traslucida (app/TranslucentActivity.java), essenzialmente impostazione del canale alfa:

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); 
} 

per altri thread sull'utilizzo canale alfa riferiscono a:

Alpha Channel Blur

How can I blur and dim an image to be used as an activity background?

blur a image at android

Un altro esempio è l'applicazione/TranslucentBlurActivity.java (da 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

Nel secondo esempio il flag "FLAG_BLUR_BEHIND' è deprecato. – Ayoub

Problemi correlati