Question

Je veux utiliser la vue CoverFlow dans mon application. Pour obtenir la partie de l'image de réflexion, j'ai utilisé le code suivant - http://www.androïdsnippets.com/create-image-with-reflection

J'ai vu beaucoup de forums / discussions sur le tramage et le tilemode, j'ai essayé tout ce qui a discuté, mais rien ne fonctionne pour moi.

FYI - Je crée un bitmap dynamiquement n'utilisant aucun bitmap dans les mises en page. Et j'ai joint l'image pour montrer à quel point elle est mauvaise:

Reflection image appearance is not looking good

J'ai énuméré ci-dessous ce que j'ai essayé de résoudre ce problème.

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

Mais l'image de réflexion est toujours très laide.

Comment puis-je résoudre ça?

Était-ce utile?

La solution 2

J'ai trouvé l'emplacement où devrais-je définir la configuration. Lors de la création du bitmap de réflexion, définissez la configuration comme argb_8888. Ça marche maintenant.

Autres conseils

Hmmm. Je "pense" que votre problème est que votre bitmap n'est pas créé en tant que Argb_8888 (malgré votre appel SetFormat). Je "suggérerais", au lieu de créer le Drawable Bitmap à l'aide d'OpenRawResource, utilisez BitmapFactory et assurez-vous de spécifier Bitmap.config.argb_8888. Ensuite, faites votre dessin à partir du bitmap. Juste une pensée - durable à deviner à cette distance sans pouvoir marcher avec Eclipse. Vous pourriez trouver cet article intéressant: http://www.curious-creature.org/2010/12/08/bitmap-quality-banding-and-dithering/

Edit: Ainsi, le problème, apparemment, était dans l'appel à CreateBitmap utilisé pour allouer le réflexion. Morale de l'histoire (IMHO): n'utilisez jamais de méthodes CreateBitmap qui ne vous permettent pas de spécifier explicitement bitmap.config. Sinon, comme le dit Forrest Gump, vous ne savez jamais ce que vous allez obtenir.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top