지금 하고있는 프로젝트에서 겔러리에서 받아온 배경화면위에 그림판에 팬효과로 그리는것을 만들고 있는대요
일딴 배경화면은 겔러리에서 불러와 xml파일에 img 라는 imageview로 들어가고요
팬으로 그리는 부분은 클래스로 되어있거든요
그래서 이제 클래스 부분에 배경을 깔려고
ImageView imageView = (ImageView) findViewById(R.id.img);
imageView.setDrawingCacheEnabled(true);
Bitmap bitmap = imageView.getDrawingCache();
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),imageView);
can.drawBitmap(bitmap, 0, 0, null);
이렇게 해봤는대 배경이 안깔리네요 오류생기진 않는대 실행하면 sorry가 뜨는 현상 ㅠ 오류내용은 null값이라고 나오는듯
그냥
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),imageView);
can.drawBitmap(bitmap, 0, 0, null);
이렇게 해서 imageView부분에 drawable/test이런식으로 그림파일 1개를 직접 drawable폴더에 넣어서 배경깔면 깔리는대
위에처럼 불러와서 imageview에 있는 그림을 깔면 안되네요
어떻게 하면 되나요 도와주세요 찡찡
아 그리고 클래스를 이제 레이아웃으로 가지고 왔는대 그림 저장하는거에서 사진찍고 저장하기나 이미지뷰 저장되는것처럼 레이아웃화면을
저장할수 있을까요??




얼마전에 올라온 글인것 같은데.. 해답을 못찾으셨는지 또 올리셨나보네요 '';
질문을 좀 더 명확하게 하시는편이 좋을 것 같습니다. 클래스 부분으로 되 있다는게.. 너무 광범위해서므리..
소스를 보지 않고서는 확실히 모르겠지만.. 캔버스를 쓰시는걸 보고 유추해보면 아마 뷰를 상속받은 커스텀 뷰를 작성하시는건가요 ?
ImageView imageView = (ImageView) findViewById(R.id.img);
imageView.setDrawingCacheEnabled(true);
Bitmap bitmap = imageView.getDrawingCache();
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),imageView);
can.drawBitmap(bitmap, 0, 0, null);
이것만 놓고 볼땐 3번문장과 4번문장이 중복되죠.. 3번에서 cache로 비트맵을 받아왔는데 왜 궂이 비트맵에 factory를 써서 다시 값을 할당할까요?
3번 문장아래와 4번문장 아래에
if(bitmap != null) {
Toast.makeText(this, "bitmap is not null", 0).show();
} else {
Toast.makeText(this, "bitmap is null", 0).show();
}
이 소스를 넣으셔서 널체크를 한번 해보시기 바랍니다.
아래만 null이라면 4번문장을 빼면 해결되고 모두다 null 이라면 scope관련해서 findViewById와 저 소스의 위치로 인한 문제일 것입니다.