ฉันต้องการสร้างบิตแมปเปล่าและตั้งค่าผืนผ้าใบเป็นบิตแมปนั้นจากนั้นวาดรูปร่างใด ๆ บนบิตแมป
ฉันต้องการสร้างบิตแมปเปล่าและตั้งค่าผืนผ้าใบเป็นบิตแมปนั้นจากนั้นวาดรูปร่างใด ๆ บนบิตแมป
คำตอบ:
สิ่งนี้อาจง่ายกว่าที่คุณคิด:
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
นี่คือชุดของบทเรียนที่ฉันพบในหัวข้อ: การวาดด้วย Canvas Series
อย่าใช้ Bitmap.Config.ARGB_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
ARGB_8888 สามารถนำคุณไปสู่ปัญหา OutOfMemory เมื่อจัดการกับบิตแมปเพิ่มเติมหรือบิตแมปขนาดใหญ่ หรือดีกว่านั้นให้พยายามหลีกเลี่ยงการใช้ตัวเลือก ARGB เอง