Kaynaktan bir bitmap nasıl ayarlanır


280

Bu basit görünüyor, ben bir bitmap görüntü ayarlamaya çalışıyorum ama kaynaklardan, çizilebilir klasördeki uygulama içinde var.

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

Bu doğru mu?

Yanıtlar:


757

Bunu bir Activity sınıfında çağırdığınızı varsayarsak

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

İlk parametre, Kaynaklar gereklidir. Normalde herhangi bir Bağlamda (ve Etkinlik gibi alt sınıflarda) elde edilebilir.


1
Bitmap null değeri alıyorum, u neden null alıyorum diyebilir miyim
gautam

evet aynı sorunu alıyorum, bitmap null değeri.
Er.Rohit Sharma

3
Sorunu anladım. Çekilebilir vektörü bitmap'e dönüştürmeye çalışıyordum. İşte çizilebilir vektör bitmap dönüştürmek için morina.
Er.Rohit Sharma

Eğer değil , bir Etkinlik sınıfından çağırıyor (örneğin bir veri sınıftan denir varsa) deneyebilirsiniz: val myBitmap = BitmapFactory.decodeResource (Resources.getSystem (), R.drawable.your_image) <-Kotlin
Bikeboy

36

Bunu dene

Bu sdcard'tan

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

Bu kaynaklardan

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

7

Kaynak gösteriliyorsa ve bir görünümse, onu da yakalayabilirsiniz. Ekran görüntüsü gibi:

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

Bu aslında tüm düzeni kapar ancak istediğiniz gibi değiştirebilirsiniz.


2

Bir bitmap nesnesi bildirdiyseniz ve bunu görüntülemek veya bu bitmap nesnesini saklamak istiyorsanız. ancak önce herhangi bir görüntü atamanız gerekir ve button click olayını kullanabilirsiniz, bu kod yalnızca çizilebilir görüntünün bitmap Nesnesinde nasıl saklanacağını gösterir.

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

Artık bu bitmap nesnesini, ister depolamak isteyin, isterse sabit enlem ve boylam üzerinde bir resim çizerken veya başka bir yerde kullanmak için Google Haritalar'da kullanabilirsiniz.


0

sadece bu satırı değiştir

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

ile

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

Sadece getResources () ile null değerini değiştirmek demek Bu kodu herhangi bir düğme veya Görüntü görünümünde tıklama olayı sadece getResources () önce getApplicationContext () eklemek ..


0

Bu işlevi kullanarak Görüntü Bitmap'i alabilirsiniz. Sadece resim URL'sini geçirin

 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;
      }
 }
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.