2012-03-28 2 views
1

누군가 내 앱이 samsumg galaxy nexus에서 제대로 작동하지만 삼성 갤럭시 s에서 충돌하는 이유를 말해 줄 수 있습니까?새로운 캔버스 (비트 맵) 은하 s에서 충돌하지만 넥서스에서 작동합니다

bMapRpm=BitmapFactory.decodeResource(getResources(), R.drawable.canvasback); 
canvasRpm = new Canvas(bMapRpm); 

BitmapFactory.decodeResource가 잘 작동하지만 난 새로운 캔버스를 만들 때 충돌 : 내가는이 라인에 충돌이 있음을 발견했다.

내가 로그 캣을 게시 할 수 없습니다 때문에 내 갤럭시 S (이유를 모르겠어요) 로그 캣을 지원하지 않습니다

누군가가 나를 도울 수 있습니까?

+0

Galaxy S는 logcat을 지원하며 명령 줄에서'adb logcat'을 시도하십시오. –

답변

2

아마도 비트 맵을 변경할 수 있어야합니다. Doc : "그리는 지정된 비트 맵을 사용하여 캔버스를 구성하십시오. 비트 맵은 변경 가능해야합니다."

당신은 할 수 있습니다

bMapRpm=BitmapFactory.decodeResource(getResources(), R.drawable.canvasback); 

Bitmap mutableCopy = Bitmap.createBitmap(bMapRpm.getWidth(),bMapRpm.getHeight(),bMapRpm.getConfig()); 
canvasRpm = new Canvas(mutableCopy); 
canvasRpm.drawBitmap(bMapRpm, null, null); 
bMapRpm.recycle(); 

..do, 사용 Bitmap.copy (콩피, is_mutable) 가변 비트 맵을 만들

+0

흠 어떻게 내가 변경할 수 있습니까? 왜 넥서스에서 작동합니까? – 5w4rley

+0

thx 그게 문제였습니다. 하지만 여전히 넥서스에서는 작동하지만 glaxy에서는 작동하지 않는다는 것을 이해하지 못합니다. – 5w4rley

+0

다른 구현 방법. 설명서에서는 decodeResource에서 제공하는 비트 맵을 변경할 수 있는지 여부를 설명하지 않습니다. –

0

쉬운 방법 캔버스 원하는대로, 당신은 그것을 시도 할 수 있습니다 :

bMapRpm=BitmapFactory.decodeResource(getResources(), R.drawable.canvasback); 
Bitmap mutableCopy = bMapRpm.copy(Bitmap.Config.ARGB_8888, true); 
canvasRpm = new Canvas(mutableCopy); 
관련 문제