많은 이미지 위에 선을 그려주는 앱을 개발 중입니다. 이러한 이미지를 선택하려면 라디오 그룹이 있고 사용자가 라디오 버튼을 클릭 할 때마다 이미지에 모든 자체 드로잉이로드됩니다. 내 라디오 listenner에서ImageView가 Android에 완전히로드 될 때 얻는 방법
나는 다음과 같은 코드가 있습니다
bitmap = BitmapUtils.decodeSampledBitmapFromResource(root + DefinesAndroid.CAMINHO_SHOPPINGS_SDCARD + nomeImagemAtual, size.x, size.y);
mImage.setImageBitmap(bitmap);
mImage.setDrawLines(true);
mImage.setImageBitmap(loadBitmapFromView(mImage));
나는 안드로이드 개발자에이 링크에서받은 decodeSampledBitmapFromResource
방법은 (더 effitiently 비트 맵을로드) 여기 http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
과 내가 전화하는 방법입니다 나는 임을 사용하고 있기 때문에
public static Bitmap loadBitmapFromView(View v) {
Bitmap b = Bitmap.createBitmap(v.getLayoutParams().width, v.getLayoutParams().height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
v.draw(c);
return b;
}
내가 mImage
의 이미지 비트 맵을 설정하고있어 뷰의 비트 맵을 얻기 위해 ageViewTouch 라이브러리 (ImageView를 통해 확대/축소를 가능하게 함)를 사용하지 않으면 확대/축소와 같은 모든 상호 작용을 통해 모든 캔버스 드로잉이 삭제됩니다.
오류 로그 내가 getBitmapFromView
메서드를 호출 할 때 이미지 비트 맵이 완전히로드되지 않습니다 원인이 오류가 발생하는 것을 거의 확신 다음
07-11 21:13:41.567: E/AndroidRuntime(20056): java.lang.IllegalArgumentException: width and height must be > 0
07-11 21:13:41.567: E/AndroidRuntime(20056): at android.graphics.Bitmap.createBitmap(Bitmap.java:638)
07-11 21:13:41.567: E/AndroidRuntime(20056): at android.graphics.Bitmap.createBitmap(Bitmap.java:620)
입니다.
보기가 완전히로드 된 시점을 어떻게 알 수 있습니까? 이러한 방식
음 나는 당신이 당신의 코드에서 다시 나를 설명 할 수없는? 처음 ImageImageBitmap을 설정했습니다. 왜 그것을 두 번째로 설정하고보기에서 높이 및 높이를 원하십니까? –
처음으로 이미지를 깨끗하게로드하는 것입니다 (도면이없는 경우). 그런 다음 setDrawLines를 호출하여 이미지 위에 선을 그립니다. 일단 드로잉이 Canvas에 그려지면 이미지 + 드로잉의 고유 이미지 하나를 만들어야합니다. 두 번째로 imageBitmap을 호출하지만 이번에는 ,보기에서 비트 맵을 가져와야합니다 (도면에 그림이 있음) ..이 방법은 내가 함께 넣을 것입니다. –
이것이 http://stackoverflow.com/questions/8831642/how-to-draw 인 것 같습니다. over-image-over-android는 당신이 원하는 것보다 더 많을 것입니다. –