How to set a bitmap from resource

前端 未结 6 1233
温柔的废话
温柔的废话 2020-12-22 15:52

This seems simple, I am trying to set a bitmap image but from the resources, I have within the application in the drawable folder.

bm = BitmapFactory.decodeR         


        
相关标签:
6条回答
  • 2020-12-22 16:10

    Assuming you are calling this in an Activity class

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

    The first parameter, Resources, is required. It is normally obtainable in any Context (and subclasses like Activity).

    0 讨论(0)
  • 2020-12-22 16:11

    If you have declare a bitmap object and you want to display it or store this bitmap object. but first you have to assign any image , and you may use the button click event, this code will only demonstrate that how to store the drawable image in bitmap Object.

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

    Now you can use this bitmap object, whether you want to store it, or to use it in google maps while drawing a pic on fixed latitude and longitude, or to use some where else

    0 讨论(0)
  • 2020-12-22 16:16

    just replace this line

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

    with

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

    I mean to say just change null value with getResources() If you use this code in any button or Image view click event just append getApplicationContext() before getResources()..

    0 讨论(0)
  • 2020-12-22 16:26

    If the resource is showing and is a view, you can also capture it. Like a screenshot:

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

    This actually grabs the whole layout but you can alter as you wish.

    0 讨论(0)
  • 2020-12-22 16:29

    Using this function you can get Image Bitmap. Just pass image 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;
          }
     }
    
    0 讨论(0)
  • 2020-12-22 16:36

    Try this

    This is from sdcard

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

    This is from resources

    Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
    
    0 讨论(0)
提交回复
热议问题