캔버스에 안드로이드에 객체를 그리는 다른 방법이 있습니까? 무승부 내부캔버스에 객체/이미지 그리기
이 코드는() 작동하지 않습니다 : 음 실제로 내 첫 번째 코드에서 일하고있어하지만 난 MarkOverlay라는 다른 클래스에이 옮겨진 한 때, 그것은 더 이상 작동하지 않습니다
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pushpin);
canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);
.
이 코드를 작성하려면 MarkerOverlay에 어떤 매개 변수를 전달해야합니까? 오류는 getResources()에 있습니다.
FYI, canvas.drawOval은 완벽하게 작동하지만 실제로 타원형이 아닌 이미지를 그려야합니다.
public class CustomView extends View {
private Drawable mCustomImage;
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
mCustomImage = context.getResources().getDrawable(R.drawable.my_image);
}
...
protected void onDraw(Canvas canvas) {
Rect imageBounds = canvas.getClipBounds(); // Adjust this for where you want it
mCustomImage.setBounds(imageBounds);
mCustomImage.draw(canvas);
}
}
당신은 Bitmap.recycle (비트 맵 데이터)를 확보해야한다 그렇지 않으면 당신은 불쾌한 메모리 누수를 얻을 : :) –
onDraw에서 이미지를 해독하지 마십시오. 렌더링 루프 외부에서 많은 양의 작업을 수행하십시오. – slott