একটি খালি বিটম্যাপ তৈরি করা এবং অ্যান্ড্রয়েডে ক্যানভাস হলেও অঙ্কন


105

আমি একটি খালি বিটম্যাপ তৈরি করতে এবং সেই বিটম্যাপে একটি ক্যানভাস সেট করতে চাই এবং তারপরে বিটম্যাপে কোনও আকার আঁকতে চাই।

উত্তর:


196

আপনি যা ভাবেন তার চেয়ে এটি সম্ভবত সহজ:

int w = WIDTH_PX, h = HEIGHT_PX;

Bitmap.Config conf = Bitmap.Config.ARGB_8888; // see other conf types
Bitmap bmp = Bitmap.createBitmap(w, h, conf); // this creates a MUTABLE bitmap
Canvas canvas = new Canvas(bmp);

// ready to draw on that bitmap through that canvas

এই বিষয়টিতে আমি টিউটোরিয়ালের একটি সিরিজ পেয়েছি: ক্যানভাস সিরিজের সাথে অঙ্কন


আমি যদি এটি একটি পৃথক শ্রেণীর মধ্যে তৈরি করি, তবে আমি কীভাবে অন্য ক্লাসে বিটম্যাপটি উল্লেখ করব। উদাহরণস্বরূপ: বিটম্যাপ পাঠ্য = বিটম্যাপফ্যাক্টরি.ডেকোডেরেসোর্স (mContext.getResource (), এখানে কী রাখবেন?); ওপেনগল লাইভ ওয়ালপেপারের মধ্যে আমার একটি পাঠ্যদর্শন দরকার। অগ্রিম ধন্যবাদ
স্টিভ সি

হাই @bigstones আমি onSizeChanged () মধ্যে বিটম্যাপ তৈরি করার জন্য আপনার কোড অনুসরণ করছি যখন আমি বিটম্যাপ আমি OutOfMemoryError পাচ্ছি সৃষ্টি করতে যাচ্ছি দয়া করে এই দেখুন stackoverflow.com/questions/24303759/...
user123456

সারফেসভিউ ব্যবহার করার সময় এটি কীভাবে অন্য থ্রেডে করা যায়?
জাচ এইচ

-3

বিটম্যাপ.কনফিগ.আরজিবি_8888 ব্যবহার করবেন না

পরিবর্তে int w = WIDTH_PX, h = HEIGHT_PX ব্যবহার করুন;

Bitmap.Config conf = Bitmap.Config.ARGB_4444; // see other conf types
Bitmap bmp = Bitmap.createBitmap(w, h, conf); // this creates a MUTABLE bitmap
Canvas canvas = new Canvas(bmp);

// ready to draw on that bitmap through that canvas

আরও বিটম্যাপ বা বড় বিটম্যাপ নিয়ে কাজ করার সময় এআরজিবি_8888 আপনাকে আউটঅফমোরি ইস্যুতে অবতরণ করতে পারে। বা আরও ভাল, নিজেই এআরজিবি বিকল্পটি এড়ানো চেষ্টা করুন।


12
এআরজিবি_৪৪৪৪ এখন হ্রাস করা হয়েছে ( developer.android.com/references/android/ographicics/… )
অ্যালেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.