Я пытаюсь отобразить изображение на Canvas
, но когда я вызываю метод drawBitmap
, я получаю только ОЧЕНЬ верхний левый угол, изображение не масштабируется до высота и ширина экрана. Вот мой код, который включает в себя пользовательский вид:
private class ImageOverlay extends View {
public ImageOverlay(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
Bitmap image = BitmapFactory.decodeFile(getPath(baseImage));
Paint paint = new Paint();
paint.setAlpha(200);
canvas.drawBitmap(image, 0, 0, paint);
Log.v(TAG, "Drew picture");
super.onDraw(canvas);
}
private String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
if(cursor!=null)
{
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
else return null;
}
baseImage
- это объект Uri
, который передается моей деятельности, и он НЕ нулевой! Вот фактическое изображение:

И вот изображение Canvas
:
