문제

내 앱에서 Coverflow보기를 사용하고 싶습니다.반사 이미지 파트를 얻으려면 다음 코드를 사용했습니다 - http : //www.androidsnippets.com / create-image-with-reflection

Dithering 및 TileMode에 대한 많은 포럼 / 토론을 보았습니다. 토론 된 모든 것을 시도했지만 아무것도 나에게는 아무 것도 없습니다.

fyi - 레이아웃에서 비트 맵을 사용하지 않는 비트 맵을 동적으로 사용하고 있습니다.그리고 나는 그것이 얼마나 나쁜지 보여주기 위해 이미지를 첨부했다.

반사 이미지 모양이 좋지 않음

이 문제를 해결하려고 시도한 것과 나열했습니다.

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

그러나 여전히 반사 이미지가 매우 못생다.

어떻게 해결할 수 있습니까?

도움이 되었습니까?

해결책 2

위치를 설정 해야하는 위치를 발견했습니다.반사 비트 맵을 만드는 동안 구성을 ARGB_8888로 설정합니다.지금 그것의 일하고 있습니다.

다른 팁

흠.I "라고 생각하십시오."귀하의 문제는 귀하의 비트 맵이 ARGB_8888 (setFormat 호출에도 불구하고)로 작성되지 않는다는 것입니다.OpenRawResource를 사용하여 비트 맵을 만드는 대신 bitmapFactory를 사용하고 bitmap.config.argb_8888을 지정했는지 확인하는 대신 "제안하는 것이 좋습니다."그런 다음 비트 맵에서 도래 할 수 있습니다.그 일식으로 일을 할 수 없게하지 않고이 거리를 추측하기가 어렵습니다.흥미로운이 기사를 찾을 수 있습니다 : http : //www.curious-creature.org/2010/12/08/bitmap-quality-banding-and-dithering/

편집 : 그래서 문제는 분명히 반사 이미지를 할당하는 데 사용되는 CreateBitMap 호출에있었습니다.이야기의 도덕 (IMHO) : Bitmap.config를 명시 적으로 지정할 수없는 CreateBitmap 메소드를 사용하지 마십시오.그렇지 않으면 포레스트 곰팡이가 말할 수 있듯이, 당신이 얻는 것을 결코 알지 못할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top