Domanda

Voglio usare la vista Coverflow nella mia app. Per ottenere la parte dell'immagine di riflessione ho usato il seguente codice - http://www.androidsnippets.com/create-image-with-reflection

Ho visto molti forum/discussioni su Dithering e Tilemode, ho provato tutto ciò che discusse, ma nulla funziona per me.

FYI - Sto creando una bitmap dinamicamente non usando alcun bitmap nei layout. E ho allegato l'immagine per mostrare quanto è grave:

Reflection image appearance is not looking good

Ho elencato di seguito ciò che ho cercato di risolvere questo problema.

   1. getWindow().setFlags(WindowManager.LayoutParams.FLAG_DITHER, WindowManager.LayoutParams.FLAG_DITHER);

   2. getWindow().setFormat(PixelFormat.RGBA_8888);


   3. BitmapDrawable baseImageDawable = new BitmapDrawable(getResources().openRawResource(imageId));
      baseImageDawable.setDither(true);
      baseImageDawable.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);

      Bitmap originalImage = baseImageDawable.getBitmap();
      int width = originalImage.getWidth();
      int height = originalImage.getHeight();

      Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0, 0, width, height, matrix, true);   

Ma l'immagine di riflessione è ancora molto brutta.

Come posso risolvere questo?

È stato utile?

Soluzione 2

Ho trovato la posizione dove dovrei impostare la configurazione. Durante la creazione della bitmap di riflessione, imposta la configurazione come argb_8888. Sta lavorando adesso.

Altri suggerimenti

Hmmm. "Penso" il tuo problema è che la tua bitmap non viene creata come argb_8888 (nonostante la tua chiamata setFormat). Vorrei "suggerire" invece di creare BitMap Drawable usando OpenRawResource, utilizzare BitmapFactory e assicurarti di specificare Bitmap.config.argb_8888. Quindi rendi il tuo disegno dalla bitmap. Solo un pensiero-duro per indovinare a questa distanza senza essere in grado di fare un passo con Eclipse. Potresti trovare questo articolo interessante: http://www.curious-creature.org/2010/12/08/bitmap-quality-banding-and-tshoring/

EDIT: Quindi, il problema, a quanto pare, era nella chiamata di creare un altro uso utilizzato per allocare l'immagine di riflessione. Morale della storia (IMHO): non utilizzare mai i metodi CreateBitMap che non consentono di specificare esplicitamente Bitmap.Config. Altrimenti, come potrebbe dire Forrest Gump, non sai mai cosa otterrai.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top