এই চিত্রটি আঁকতে আমি কীভাবে ক্যানভাসে একটি চিত্র পেতে পারি?
উত্তর:
ক্যানভাসে একটি অঙ্কনযোগ্য আঁকার ভাল উপায় এটি নিজেই ডিকোড করছে না এটির জন্য এটি সিস্টেমে রেখে দেওয়া:
Drawable d = getResources().getDrawable(R.drawable.foobar, null);
d.setBounds(left, top, right, bottom);
d.draw(canvas);
এটি কেবল বিটম্যাপসই নয়, সমস্ত ধরণের অঙ্কনযোগ্যগুলির সাথে কাজ করবে। এবং এর অর্থ হ'ল যদি কেবল আকার পরিবর্তন হয় তবে আপনি আবার সেই একই অঙ্কনযোগ্যটি আবার ব্যবহার করতে পারেন।
আপনার ছবিটি বিটম্যাপ হিসাবে লোড করতে হবে:
Resources res = getResources();
Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.your_image);
তারপরে বিটম্যাপটি পরিবর্তনীয় করে তুলুন এবং এর উপর একটি ক্যানভাস তৈরি করুন:
Canvas canvas = new Canvas(bitmap.copy(Bitmap.Config.ARGB_8888, true));
তারপরে আপনি ক্যানভাসে আঁকতে পারেন।
এছাড়াও আপনি এইভাবে ব্যবহার করতে পারেন। এটি আপনার ক্যানভাসে আপনার বড় অঙ্কনীয় ফিটকে বদলে দেবে:
Resources res = getResources();
Bitmap bitmap = BitmapFactory.decodeResource(res, yourDrawable);
yourCanvas.drawBitmap(bitmap, 0, 0, yourPaint);
Drawable d = ContextCompat.getDrawable(context, R.drawable.***)
d.setBounds(left, top, right, bottom);
d.draw(canvas);
এটা চেষ্টা কর
Bitmap mBitmap = Bitmap.createScaledBitmap(Bitmap src, int dstWidth, int dstHeight, boolean filter);
protected void onDraw(Canvas canvas) {
canvas.drawColor(0xFFAAAAAA);
canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
}
package com.android.jigsawtest;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
public class SurafaceClass extends SurfaceView implements
SurfaceHolder.Callback {
Bitmap mBitmap;
Paint paint =new Paint();
public SurafaceClass(Context context) {
super(context);
mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
// TODO Auto-generated constructor stub
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.BLACK);
canvas.drawBitmap(mBitmap, 0, 0, paint);
}
}