현재의 상황을 설명하면
사용자로부터 입력받는 서명 이미지를 화면에 디스플레이 해줄 것인데 이게 배경까지 같이 나오면서 화면에 보여주어야 하는 정보까지 덮어쓰게 되는 현상이 발생 .. 간단한 옵션으로 처리가 될줄 알고 찾아 보았는데 의외로 간단하지 않았다.
<!-- 서명 이미지 View -->
<ImageView
android:id="@+id/img_sign"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background= "#00FFFFFF" (1)
android:background="@android:color/transparent" (2)
/>
현 화면상의 Image뷰에 암만 (1) , (2)옵션을 주어도 않되어서 답답함에
찾아보니 이것저것 주절이 주절이 뭔가 설명하는게 있기는 하지만 안드로이드는 주전공이 아니기에
디스플레이 될 bitmap 이미지정보를 받아와서 각 픽셀을 컨트롤 하는 것으로 찾아서 수정 완료
private Bitmap makeTransparent(Bitmap bit) {
int width = bit.getWidth();
int height = bit.getHeight();
Bitmap myBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
int[] allpixels = new int[myBitmap.getHeight() * myBitmap.getWidth()];
bit.getPixels(allpixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(), myBitmap.getHeight());
myBitmap.setPixels(allpixels, 0, width, 0, 0, width, height);
for (int i = 0; i < myBitmap.getHeight() * myBitmap.getWidth(); i++) {
if (allpixels[i] == Color.WHITE) { // 하얀색을 투명하게 변환
allpixels[i] = Color.alpha(Color.TRANSPARENT);
}
}
myBitmap.setPixels(allpixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(), myBitmap.getHeight());
return myBitmap;
}
아!~ 안드로이드는 나랑은 않맞는거 같아 ..
자바 람다가 않맞는건가?
'개발 > 안드로이드' 카테고리의 다른 글
Android Bitmap 특정 영역 리사이징 (0) | 2021.01.28 |
---|---|
안드로이드 기술 면접에 좋을 자료 (0) | 2020.11.19 |
Activity 라이프사이클 맛보기 정리 (0) | 2020.10.26 |