Як встановити растрову карту з ресурсу


279

Це здається простим, я намагаюся встановити зображення растрового зображення, але з ресурсів, які я маю в програмі, в папці, що малюється.

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

Це правильно?

Відповіді:


756

Якщо припустити, що ви викликаєте це в класі активності

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

Перший параметр, Ресурси, обов'язковий. Це, як правило, можна отримати в будь-якому контексті (і підкласах, таких як Activity).


1
Я отримую нульове значення растрової
карти

так, я отримую ту саму проблему, нульове значення растрової карти.
Er.Rohit Sharma

3
Я отримав питання. Я намагався перетворити векторний файл, що малюється, в растровий малюнок. Отже, ось тріска перетворює вектор, який можна перетворити, на бітмап.
Er.Rohit Sharma

Якщо ви не дзвоните з класу "Діяльність" (наприклад, якщо дзвоніть з класу даних), ви можете спробувати: val myBitmap = BitmapFactory.decodeResource (Resources.getSystem (), R.dravable.your_image) <—Kotlin
Bikeboy

36

Спробуйте це

Це з 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);

7

Якщо ресурс відображається і є переглядом, ви також можете його захопити. Як скріншот:

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

Це фактично захоплює весь макет, але ви можете змінити, як хочете.


2

Якщо ви оголосили об'єкт растрової карти і хочете його відобразити або зберегти цей об'єкт растрової карти. але спочатку вам потрібно призначити будь-яке зображення, і ви можете використовувати подію натискання кнопки, цей код лише продемонструє, що зберігати зображення, що виводиться, в растровому об'єкті.

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

Тепер ви можете використовувати цей об'єкт растрових зображень, чи потрібно його зберігати, чи використовувати його в картах google, малюючи зображення на фіксованій широті та довготі, або використовувати десь ще


0

просто замініть цю лінію

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

з

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

Я маю на увазі сказати просто змінити нульове значення за допомогою getResources () Якщо ви використовуєте цей код у будь-якій кнопці або перегляді зображення, натисніть подія просто додайте getApplicationContext () перед getResources ().


0

За допомогою цієї функції ви можете отримати 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;
      }
 }
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.