ดูเหมือนง่ายฉันกำลังพยายามตั้งค่ารูปบิตแมป แต่จากทรัพยากรฉันมีภายในแอปพลิเคชันในโฟลเดอร์ drawable
bm = BitmapFactory.decodeResource(null, R.id.image);
ถูกต้องหรือไม่
ดูเหมือนง่ายฉันกำลังพยายามตั้งค่ารูปบิตแมป แต่จากทรัพยากรฉันมีภายในแอปพลิเคชันในโฟลเดอร์ drawable
bm = BitmapFactory.decodeResource(null, R.id.image);
ถูกต้องหรือไม่
คำตอบ:
สมมติว่าคุณกำลังเรียกสิ่งนี้ในคลาสกิจกรรม
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.image);
ต้องระบุพารามิเตอร์แรกคือทรัพยากร โดยทั่วไปจะสามารถใช้ได้ในบริบทใด ๆ (และคลาสย่อยเช่นกิจกรรม)
ลองสิ่งนี้
นี่คือจาก sdcard
ImageView image = (ImageView) findViewById(R.id.test_image);
Bitmap bMap = BitmapFactory.decodeFile("/sdcard/test2.png");
image.setImageBitmap(bMap);
นี่คือจากแหล่งข้อมูล
Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
หากทรัพยากรกำลังแสดงและเป็นมุมมองคุณสามารถจับภาพได้ เหมือนภาพหน้าจอ:
View rootView = ((View) findViewById(R.id.yourView)).getRootView();
rootView.setDrawingCacheEnabled(true);
rootView.layout(0, 0, rootView.getWidth(), rootView.getHeight());
rootView.buildDrawingCache();
Bitmap bm = Bitmap.createBitmap(rootView.getDrawingCache());
rootView.setDrawingCacheEnabled(false);
นี่เป็นการดึงเค้าโครงทั้งหมด แต่คุณสามารถเปลี่ยนแปลงได้ตามที่คุณต้องการ
ถ้าคุณประกาศวัตถุบิตแมปและคุณต้องการแสดงหรือเก็บวัตถุบิตแมปนี้ แต่ก่อนอื่นคุณต้องกำหนดภาพใด ๆ และคุณสามารถใช้ปุ่มคลิกเหตุการณ์รหัสนี้จะแสดงให้เห็นว่าวิธีการเก็บภาพที่วาดได้ในวัตถุบิตแมป
Bitmap contact_pic = BitmapFactory.decodeResource(
v.getContext().getResources(),
R.drawable.android_logo
);
ตอนนี้คุณสามารถใช้วัตถุบิตแมปนี้ไม่ว่าคุณต้องการเก็บไว้หรือใช้ในแผนที่ Google ในขณะที่วาดรูปบนละติจูดและลองจิจูดคงที่หรือใช้ที่อื่น
เพียงแค่แทนที่สายนี้
bm = BitmapFactory.decodeResource(null, R.id.image);
กับ
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.YourImageName);
ฉันหมายถึงว่าเพียงแค่เปลี่ยนค่า Null ด้วย getResources () ถ้าคุณใช้รหัสนี้ในปุ่มใด ๆ หรือคลิกดูภาพเหตุการณ์เพียงแค่ผนวก getApplicationContext () ก่อน getResources () ..
เมื่อใช้ฟังก์ชั่นนี้คุณจะได้รับ Image Bitmap เพียงส่ง URL ของภาพ
public Bitmap getBitmapFromURL(String strURL) {
try {
URL url = new URL(strURL);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
return myBitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}