마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이미지 해상도 크기 질문있습니다!!!

0 추천
656 x 1170 사이즈의 이미지를

1080 x 1920 인 옵GPro에 이미지뷰를 이용해 띄웠습니다.

이미지의 특정위치에 다른 그림을 올리고싶은데 만약 (656,1170)을 찍는다면 핸드폰으로 확인했을때

다른 위치에 표시됩니다.

dp, pixel의 개념을 읽어보아도 어떻게 수정해야할지 이해가 잘 가지 않습니다.. ㅠㅠ 설명좀 부탁드립니다!!!
익명사용자 님이 2015년 10월 18일 질문
정확히 x,y값을 따져서 특정 위치에 놓을거면 밑에 분 댓글 보시면 되구요.
핸드폰마다 해상도가 다르니 그 점은 유의하시는게 좋습니다..
정확히 x, y 값을 따져서 특정 위치에 놓고싶은데 1080 * 1920 에서의 좌표 설정을 못하겠습니다 ㅠㅠ

1개의 답변

0 추천
안녕하세요..

한 이미지뷰에 이미지를 다른 영역에 그리기 위해서는 Canvas를 사용해서 특정 위치부터 두번째 이미지를 그리시면 됩니다. 그리고 이 그려진 이미지를 파일로 저장하시고 다시 ImageView에서 로딩하시면 됩니다.

http://developer.android.com/intl/zh-cn/reference/android/graphics/Canvas.html 여기에 보시면 drawBitmap류의 메서드를 보시면 어떻게 그리시면 될지 아실 것 같습니다.
mcsong (44,040 포인트) 님이 2015년 10월 19일 답변
제질문이 구체적이지 못했네요 ㅠ.ㅠ canvas를 이용해서 그리긴 그렸는데 제가표시한것과 다른 엉뚱한 지점에 그려지는데 이게 핸드폰에 그려질때 이미지크기같은부분에서 변동이있는것같은데 어떻게확인해야할지를 모르겠습니다 ㅠㅠ
흠.. Canvas의 draw는 pixel을 기준으로 그리기 작업을 진행하게 됩니다. 만약에 dp 별로 다른 이미지를 읽어서 canvas를 그리신다면 문제가 되겠지만.. dp에 영향을 받지 않는 이미지(예로 download와 같은 폴더에 위치한 이미지)는 잘 나와야 할 건데요.. 코드를 첨부해 주시면 디버깅이 좀 쉬울 것 같네요..
public void onDraw(Canvas canvas){
                Log.i("n", "draw");
                Bitmap _scartch = BitmapFactory.decodeResource(getResources(), R.drawable.location_book);
          
                bookshelf_xx=(int)Math.round(bookshelf_x);
                bookshelf_yy=(int)Math.round(bookshelf_y);
                canvas.drawBitmap(_scartch, bookshelf_x, bookshelf_y,  null);



                
            }


이전의코드에서 x좌표와 y좌표를 구입해서 그릴 때 위와같이 대입해주는데
그림을 그리면 다른 곳에 그려집니다. x좌표와 y 좌표가 구해지는 것은 확인 했습니다. 배경 이미지가 656x1170사이즈라서 각각의 좌표를 656, 1170이라 하면 이미지의 중간쯤에 그려집니다.
이것저것 계산해 봤을 때 구한 x좌표와 y좌표에 약 1.3 정도를 곱하면 제가 원하는 위치에 그려지는데 그것도 정확한 것이 아니라서요...ㅠㅠㅠㅠ
...