Cara mengatur bitmap dari sumber daya


280

Ini tampaknya sederhana, saya mencoba untuk mengatur gambar bitmap tetapi dari sumber daya, saya memiliki dalam aplikasi di folder yang dapat digambar.

bm = BitmapFactory.decodeResource(null, R.id.image);

Apakah ini benar?

Jawaban:


757

Dengan asumsi Anda memanggil ini di kelas Activity

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.image);

Parameter pertama, Sumber Daya, diperlukan. Biasanya diperoleh dalam Konteks apa pun (dan subkelas seperti Aktivitas).


1
Saya mendapatkan nilai null dari bitmap, dapatkah Anda mengatakan kepada saya mengapa saya mendapatkan null
gautam

ya saya mendapatkan masalah yang sama, nilai null dari bitmap.
Er.Rohit Sharma

3
Saya punya masalah. Saya mencoba untuk mengubah gambar vektor menjadi bitmap. Jadi di sini adalah cod untuk mengubah gambar vektor menjadi bitmap.
Er.Rohit Sharma

Jika tidak menelepon dari kelas Activity (misalnya, jika dipanggil dari kelas data) Anda dapat mencoba: val myBitmap = BitmapFactory.decodeResource (Resources.getSystem (), R.drawable.your_image) <—Kotlin
Bikeboy

36

Coba ini

Ini dari sdcard

ImageView image = (ImageView) findViewById(R.id.test_image);
Bitmap bMap = BitmapFactory.decodeFile("/sdcard/test2.png");
image.setImageBitmap(bMap);

Ini dari sumber daya

Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);

7

Jika sumber daya ditampilkan dan dilihat, Anda juga dapat menangkapnya. Seperti tangkapan layar:

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);

Ini sebenarnya mengambil seluruh tata letak tetapi Anda dapat mengubah sesuai keinginan.


2

Jika Anda telah mendeklarasikan objek bitmap dan Anda ingin menampilkannya atau menyimpan objek bitmap ini. tetapi pertama-tama Anda harus menetapkan gambar apa pun, dan Anda dapat menggunakan acara klik tombol, kode ini hanya akan menunjukkan bahwa cara menyimpan gambar yang dapat digambar dalam Objek bitmap.

Bitmap contact_pic = BitmapFactory.decodeResource(
                           v.getContext().getResources(),
                           R.drawable.android_logo
                     );

Sekarang Anda dapat menggunakan objek bitmap ini, apakah Anda ingin menyimpannya, atau menggunakannya di google maps sambil menggambar pic pada lintang dan bujur tetap, atau menggunakan beberapa tempat lain


0

ganti saja baris ini

bm = BitmapFactory.decodeResource(null, R.id.image);

dengan

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.YourImageName);

Maksud saya katakan, ubah saja nilai nol dengan getResources () Jika Anda menggunakan kode ini di sembarang tombol atau acara klik tampilan Gambar, tambahkan saja getApplicationContext () sebelum getResources () ..


0

Dengan menggunakan fungsi ini Anda bisa mendapatkan Bitmap Gambar. Lewati url gambar

 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;
      }
 }
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.