精华内容
下载资源
问答
  • Bitmap

    千次阅读 2015-10-21 13:29:04
    Bitmap是Android系统中的图像处理的最重要类之一。 用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作, 并可以指定格式保存图像文件。本文从应用的角度,着重介绍怎么用Bitmap来实现这些功能。 一、Bitmap...

    Bitmap是Android系统中的图像处理的最重要类之一。
    用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,
    并可以指定格式保存图像文件。本文从应用的角度,着重介绍怎么用Bitmap来实现这些功能。






    一、Bitmap的生成
       
       1.1 BitmapFactory decode出Bitmap
              Bitmap实现在android.graphics包中。
         但是Bitmap类的构造函数是私有的,外面并不能实例化,只能是通过JNI实例化。
        这必然是 某个辅助类提供了创建Bitmap的接口,而这个类的实现通过JNI接口来实例化Bitmap的,
        这个类就是BitmapFactory。
        利用BitmapFactory可以从一个指定文件中,利用decodeFile()解出Bitmap;
        也可以定义的图片资源中,利用decodeResource()解出Bitmap。
        
       1.2 decode时的选项
         在使用方法decodeFile()/decodeResource()时,都可以指定一个BitmapFacotry.Options。
         利用Options的下列属性,可以指定decode的选项:
      inPreferredConfig 指定decode到内存中,手机中所采用的编码,可选值定义在Bitmap.Config中。缺省值是ARGB_8888。
      inJustDecodeBounds 如果设置为true,并不会把图像的数据完全解码,亦即decodeXyz()返回值为null,但是Options的outAbc中解出了图像的基本信息。
      inSampleSize 设置decode时的缩放比例。
         利用Options的这些值就可以高效的得到一幅缩略图。
         先设置inJustDecodeBounds= true,调用decodeFile()得到图像的基本信息[Step#2~4];
         利用图像的宽度(或者高度,或综合)以及目标的宽度,得到inSampleSize值,再设置inJustDecodeBounds= false,
         调用decodeFile()得到完整的图像数据[Step#5~8]。
         先获取比例,再读入数据,如果欲读入大比例缩小的图,将显著的节约内容资源。有时候还会读入大量的缩略图,这效果就更明显了。


    二、利用Bitmap和Matrix实现图像变换


        Bitmap可以和Matrix结合实现图像的剪切、旋转、缩放等操作。
             用源Bitmap通过变换生成新的Bitmap的方法:
        public static Bitmap createBitmap(Bitmap source, int x, int y, intwidth, int height, Matrix m, boolean filter) 
        public static Bitmap createBitmap(Bitmap source, int x, int y, intwidth, int height) 
        public static Bitmap createScaledBitmap(Bitmap src, int dstWidth, int dstHeight,boolean filter)
              第一个方法是最终的实现,后两种只是对第一种方法的封装。
              第二个方法可以从源Bitmap中指定区域(x,y, width, height)中挖出一块来实现剪切;
              第三个方法可以把源Bitmap缩放为dstWidth x dstHeight的Bitmap。
              设置Matrix的Rotate(通过setRotate())或者Scale(通过setScale()),传入第一个方法,可实现旋转或缩放。


    三、保存图像文件


        经过图像变换之后的Bitmap里的数据可以保存到图像压缩文件里(JPG/PNG)。
        这个操作过程中,Bitmap.compress()方法的参数format可设置JPEG或PNG格式;quality可选择压缩质量;fOut是输出流(OutputStream),这里的FileOutputStream是OutputStream的一个子类。
       总结一下,本文介绍Bitmap的使用方法——用Bitmap实现图像文件的读取和写入,并用Bitmap实现图像的剪切、旋转和缩放变换。        
                
                
































     

    展开全文
  • file转bitmap File param = new File(); Bitmap bitmap= BitmapFactory.decodeFile(param.getPath()); drawable转bitmap Bitmap bmp = BitmapFactory.decodeResource(getResources(),R.mipmap.jcss_03 .....

    file转bitmap

    File param = new File();

     

    Bitmap bitmap= BitmapFactory.decodeFile(param.getPath());

    drawable转bitmap

     

    Bitmap    bmp = BitmapFactory.decodeResource(getResources(),R.mipmap.jcss_03 );

    url转bitmap

     

    Bitmap bitmap;
    public Bitmap returnBitMap(final String url){
    
        new Thread(new Runnable() {
            @Override
            public void run() {
                URL imageurl = null;
    
                try {
                    imageurl = new URL(url);
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                }
                try {
                    HttpURLConnection conn = (HttpURLConnection)imageurl.openConnection();
                    conn.setDoInput(true);
                    conn.connect();
                    InputStream is = conn.getInputStream();
                    bitmap = BitmapFactory.decodeStream(is);
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    
        return bitmap;
    }

     

    方法二:

    public Bitmap getBitmap(String url) {
        Bitmap bm = null;
        try {
            URL iconUrl = new URL(url);
            URLConnection conn = iconUrl.openConnection();
            HttpURLConnection http = (HttpURLConnection) conn;
    
            int length = http.getContentLength();
    
            conn.connect();
            // 获得图像的字符流
            InputStream is = conn.getInputStream();
            BufferedInputStream bis = new BufferedInputStream(is, length);
            bm = BitmapFactory.decodeStream(bis);
            bis.close();
            is.close();// 关闭流
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        return bm;
    }

     

    可配合前台线程显示

     

    private Handler mHandler = new Handler() {
        public void handleMessage(android.os.Message msg) {
            switch (msg.what) {
                case REFRESH_COMPLETE:
                    myheadimage.setImageBitmap(bitmap);//显示
                    break;
            }
        }
    };
    String imageUrl = "http://www.pp3.cn/uploads/201511/2015111212.jpg";
    bitmap= returnBitMap(imageUrl);
    mHandler.sendEmptyMessageDelayed(REFRESH_COMPLETE, 1000);

    bitmap转file

    private  String SAVE_PIC_PATH = Environment.getExternalStorageState().equalsIgnoreCase(Environment.MEDIA_MOUNTED)
            ? Environment.getExternalStorageDirectory().getAbsolutePath() : "/mnt/sdcard";//
    
    private  String SAVE_REAL_PATH = SAVE_PIC_PATH + "/good/savePic";//保存的确

     

    saveFile(bmp, System.currentTimeMillis() + ".png");
      //保存方法
        private void saveFile(Bitmap bm, String fileName) throws IOException {
            String subForder = SAVE_REAL_PATH;
            File foder = new File(subForder);
            if (!foder.exists()) foder.mkdirs();
    
            File myCaptureFile = new File(subForder, fileName);
            Log.e("lgq","图片保持。。。。wwww。。。。"+myCaptureFile);
            ends = myCaptureFile.getPath();
            if (!myCaptureFile.exists()) myCaptureFile.createNewFile();
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));
            bm.compress(Bitmap.CompressFormat.JPEG, 100, bos);
            bos.flush();
            bos.close();
    //        ToastUtil.showSuccess(getApplicationContext(), "已保存在/good/savePic目录下", Toast.LENGTH_SHORT);
            //发送广播通知系统
            Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
            Uri uri = Uri.fromFile(myCaptureFile);
            intent.setData(uri);
            this.sendBroadcast(intent);
        }

    bitmap与byte[]之间相互转换

     

    Android 图片压缩,bitmap与byte[]之间相互转换:https://blog.csdn.net/meixi_android/article/details/89921090

    展开全文
  • Bitmap createBitmap 相关参数

    万次阅读 2018-04-27 15:24:57
    (一) Bitmap方法相关参数:(1) Bitmap createBitmap (Bitmap src)从原位图src复制出一个新的位图,和原始位图相同(2) Bitmap createBitmap (int width, int height, Bitmap.Config config)根据参数创建新位图int ...
    (一) Bitmap方法相关参数:
    
    (1) Bitmap createBitmap (Bitmap src)
    从原位图src复制出一个新的位图,和原始位图相同


    (2) Bitmap createBitmap (int width, int height, Bitmap.Config config)
    根据参数创建新位图
    int width    The width of the bitmap
    int height   The height of the bitmap
    config The bitmap config to create


    (3) Bitmap createBitmap (Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter)
    返回一个不可变的源位图的位图的子集,改变了可选的矩阵。新的位图可能与源相同的对象,或可能是一个副本。
    它初始化与原始位图的密度。如果源位图是不可变的,请求的子集是一样的源位图本身,然后返回源位图,没有新的位图创建。
    (从原始位图剪切图像,这是一种高级的方式。可以用Matrix(矩阵)来实现旋转等高级方式截图)

    sourceBitmap  产生子位图的源位图;
    x int         子位图第一个像素在源位图的X坐标
    y int   子位图第一个像素在源位图的y坐标
    width int     子位图每一行的像素个数
    height int    子位图的行数
    m  Matrix     对像素值进行变换的可选矩阵
    filter boolean    如果为true,源图要被过滤。该参数仅在matrix包含了超过一个翻转才有效
    Returns Bitmap   一个描述了源图指定子集的位图


    (4) public static Bitmap createBitmap (int[] colors, int width, int height, Bitmap.Config config) 
    这个函数根据颜色数组来创建位图,注意:颜色数组的长度>=width*height
    (此函数创建位图的过程可以简单概括为为:更加width和height创建空位图,然后用指定的颜色数组colors来从左到右从上至下一次填充颜色。
     config是一个枚举,可以用它来指定位图“质量”。)


    (5) public static Bitmap createBitmap (int[] colors, int offset, int stride, int width, int height, Bitmap.Config config)
    offset      写入到pixels[]中的第一个像素索引值 
    stride      pixels[]中的行间距个数值(必须大于等于位图宽度) 
    展开全文
  • File tempFile = null;... Bitmap bitmap = BitmapUtils.createThumbnail(imagePath, 1080, 1080 * 1920); if (bitmap != null) { Bitmap tmp = BitmapUtils.rotateImg(BitmapUtils.getOrientati

    File tempFile = null;
    try {
        Bitmap bitmap = BitmapUtils.createThumbnail(imagePath, 1080, 1080 * 1920);
        if (bitmap != null) {
            Bitmap tmp = BitmapUtils.rotateImg(BitmapUtils.getOrientation(imagePath), bitmap);
            LogUtil.d("111 tmp = " + tmp + " ,  bitmap = " + bitmap + "  isRecycled = " + tmp.isRecycled());
            if (tmp != null) {
                bitmap.recycle();
                LogUtil.d("222 tmp = " + tmp + " ,  bitmap = " + bitmap + "  isRecycled = " + tmp.isRecycled());
                bitmap = tmp;
            }
            LogUtil.d("tmp = " + tmp + "  isRecycled = " + tmp.isRecycled());
        }
    
        if (bitmap != null) {
            LogUtil.d("bitmap = " + bitmap + "  , isRecycled " + bitmap.isRecycled());
            File tempDir = StorageUtils.getIndividualCacheDirectory(context, Config.IMAGE_TEMP_DIR_NAME);
            tempFile = File.createTempFile("img_", ".jpg", tempDir);
            bitmap.compress(CompressFormat.JPEG, 70, new FileOutputStream(tempFile));
            bitmap.recycle();
        }
    } catch (Throwable e) {
        e.printStackTrace();
        tempFile = null;
    }

    上面的代码看似 没有什么问题, 但是在执行的时候会抛出 异常 
    在执行 bitmap.compress(CompressFormat.JPEG, 70, new FileOutputStream(tempFile)); 方法的时候
    会抛出如下异常: 
    java.lang.IllegalStateException: Can't compress a recycled bitmap
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at android.graphics.Bitmap.checkRecycled(Bitmap.java:347)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at android.graphics.Bitmap.compress(Bitmap.java:999)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at com.zuiapps.deer.common.utils.ImageUtils.compressImage(ImageUtils.java:75)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at com.zuiapps.deer.publish.presenter.PublishPresenter.uploadImages(PublishPresenter.java:110)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at com.zuiapps.deer.publish.presenter.PublishPresenter.cycleUpload(PublishPresenter.java:163)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at com.zuiapps.deer.publish.presenter.PublishPresenter.access$700(PublishPresenter.java:36)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at com.zuiapps.deer.publish.presenter.PublishPresenter$3.complete(PublishPresenter.java:148)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at com.qiniu.android.storage.ResumeUploader$1.complete(ResumeUploader.java:79)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at com.qiniu.android.storage.ResumeUploader$2.complete(ResumeUploader.java:202)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at com.qiniu.android.http.HttpManager$2.complete(HttpManager.java:170)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at com.qiniu.android.http.ResponseHandler.onSuccess(ResponseHandler.java:156)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at com.loopj.android.http.AsyncHttpResponseHandler.handleMessage(AsyncHttpResponseHandler.java:351)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at com.loopj.android.http.AsyncHttpResponseHandler$ResponderHandler.handleMessage(AsyncHttpResponseHandler.java:510)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at android.os.Looper.loop(Looper.java:139)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5267)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at java.lang.reflect.Method.invoke(Method.java:372)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:950)
    12-23 15:30:14.009 30211-30211/com.zuiapps.deer W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)

    说 bitmap 已被recycle掉了 
    但是我们看 上面的代码:
    Bitmap tmp = BitmapUtils.rotateImg(BitmapUtils.getOrientation(imagePath), bitmap);
    LogUtil.d("111 tmp = " + tmp + " ,  bitmap = " + bitmap + "  isRecycled = " + tmp.isRecycled());
    if (tmp != null) {
        bitmap.recycle();
        LogUtil.d("222 tmp = " + tmp + " ,  bitmap = " + bitmap + "  isRecycled = " + tmp.isRecycled());
        bitmap = tmp;
    }



    可以看到 recycle 掉的是原来的bitmap,  不是刚刚创建的 tmp
    然后 bitmap 就马上 指向 tmp 这个bitmap了

    看起来好想没什么问题,
    但是 通过打印出来的log可以看出

    111 tmp = android.graphics.Bitmap@315901c2 ,  bitmap = android.graphics.Bitmap@315901c2  isRecycled = false
    12-23 15:42:07.838 10655-10748/com.zuiapps.deer D/LogUtil: 222 tmp = android.graphics.Bitmap@315901c2 ,  bitmap = android.graphics.Bitmap@315901c2  isRecycled = true
    12-23 15:42:07.838 10655-10748/com.zuiapps.deer D/LogUtil: tmp = android.graphics.Bitmap@315901c2  isRecycled = true
    12-23 15:42:07.838 10655-10748/com.zuiapps.deer D/LogUtil: bitmap = android.graphics.Bitmap@315901c2  , isRecycled true


    有些情况  tmp = android.graphics.Bitmap@315901c2 ,  bitmap = android.graphics.Bitmap@315901c2 是同一个对象 
    查看  rotateImg 方法 发现里面调用了:Bitmap.createBitmap 方法
    有些情况  tmp = android.graphics.Bitmap@315901c2 ,  bitmap = android.graphics.Bitmap@315901c2 是同一个对象 
    查看  rotateImg 方法 发现里面调用了:Bitmap.createBitmap 方法
    public static Bitmap rotateImg(int degree, Bitmap bitmap) {
       Matrix matrix = new Matrix();
       matrix.postRotate(degree);
       return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
    }

    在看 Bitmap.createBitmap 发现 有些情况下 确实是会返回 原bitmap的 

    public static Bitmap createBitmap(Bitmap source, int x, int y, int width, int height,
            Matrix m, boolean filter) {
    
        checkXYSign(x, y);
        checkWidthHeight(width, height);
        if (x + width > source.getWidth()) {
            throw new IllegalArgumentException("x + width must be <= bitmap.width()");
        }
        if (y + height > source.getHeight()) {
            throw new IllegalArgumentException("y + height must be <= bitmap.height()");
        }
    
        // check if we can just return our argument unchanged
        if (!source.isMutable() && x == 0 && y == 0 && width == source.getWidth() &&
                height == source.getHeight() && (m == null || m.isIdentity())) {
            return source;
        }
        …
    }


    所以要注意  Bitmap.createBitmap 得到 的bitmap 不一定是新的bitmap

    不能随意 recycle



    展开全文
  • Bitmap与Uri互转 Activity传递Bitmap 分享Bitmap
  • bitmap的createBitmap

    千次阅读 2016-10-12 15:42:35
    可以对bitmap操作1.public static Bitmap createBitmap (Bitmap src) 从原位图src复制出一个新的位图,和原始位图相同2.public static Bitmap createBitmap (int[] colors, int width, int height, Bitmap.Config ...
  • BitMap算法

    万次阅读 多人点赞 2017-03-19 22:05:50
    http://blog.csdn.net/pipisorry/article/details/62443757BitMapBitMap从字面的意思,很多人认为是位图,其实准确的来说,翻译成基于位的映射。在所有具有性能优化的数据结构中,大家使用最多的就是hash表,是的,...
  • Bitmap createBitmap()裁剪图片

    千次阅读 2019-02-21 21:38:10
    因此便用到了Bitmap的裁剪。也就用到了 createBitmap() 这个方法。这里仅做一下记录。 这是官方的API介绍 /** * Returns an immutable bitmap from the specified subset of the source * bitmap. Th...
  • 想要将图片地址转成base64格式,需要先将其转为Bitmap,然后再有Bitmap转为base64,使用下面2和3 2.url转Bitmap 由于是通过地址获取图片,所以在转换的过程中要开启线程去处理,代码如下: public void urlTo...
  • Bitmap 位图索引原理

    千次阅读 2015-02-28 15:57:32
    Bitmap
  • Bitmap镜像

    千次阅读 2018-03-28 21:47:34
    private Bitmap convertBitmap(Bitmap srcBitmap){ int width = srcBitmap.getWidth(); int height = srcBitmap.getHeight(); Bitmap newBitmap = Bitmap.createBitmap(width,height, Bitmap.Config.AR...
  • 无意间看到Bitmap.createBitmap的源码,发现其中有一句很有趣的话 “The new bitmap may be the same object as source, or a copy may have been made”。如下图: 于是乎,搜索了相关内容,看到有一篇文章遇到一...
  • Bitmap复用

    千次阅读 2017-11-29 12:57:18
    1.Bitmap的复用 有时候我们需要很多相同尺寸的bitmap来承载画面,比如在播放视频的时候,这种时候对bitmap复用就非常有意义了。 Bitmap bitmap = Bitmap.createBitmap(videoWidth, videoHeight , Bitmap....
  • Android Bitmap

    千次阅读 2015-09-17 21:18:40
    开发应用过程中图片的使用是必不可少的,在Android中除了使用Drawable资源中的图片,我们还可以使用Bitmap,Picture类等创建图片。  Bitmap Bitmap代表一张位图。Bitmap能能够直接创建,要通过Bitmap.Factory来...
  • Bitmap类源文件

    热门讨论 2013-02-02 22:56:51
    java实现的Bitmap类 用于自动生成Bitmap文件头和填充调色板等,目前只支持8位256色的Bitmap
  • Bitmap高效加载

    万次阅读 2019-04-10 16:37:37
    1.Bitmap的基础概念 Bitmap是Android系统中的图像处理的最重要类之,Bitmap可以获取图片的信息,可以将信息进行缩放,裁剪等操作,提供了图片文件的操作支持。 2.Bitmap加载方式 BitmapFactory.decodeFile(); 文件...
  • Drawable转换成一个Bitmap

    万次阅读 2019-02-18 17:39:04
    /** * Drawable转换成一个Bitmap * * @param drawable drawable对象 * @return ... public static final Bitmap drawableToBitmap(Drawable drawable) { ... Bitmap bitmap = Bitmap.createBitmap( d...
  • Bitmap总结

    千次阅读 2015-11-30 00:28:05
    Bitmap可以说是图像处理中最重要的类,可以实现图像的剪切,旋转,旋转操作,我正在做的就是一个图片处理app,下面我会说一些在项目中遇到的问题和一些解决方案。 Android中Bitmap,byte[],Drawable相互转化 1,...
  • public static Bitmap getMutableBitmap(Bitmap bitmap)  {  if(bitmap == null || bitmap.isMutable())  {  return bitmap;  }    try {  File file = new File(AppConstants.SDCARD_PATH+"/mutab
  • C# Bitmap转为Mat

    2018-11-19 16:53:57
    C#语言下,官方好像没有提供直接的方式把Bitmap转为Mat,但是可以使用我的这个方式转变格式
  • Bitmap setPixels

    千次阅读 2016-03-11 12:34:49
    最近用到Bitmap的各种专场,需要了解Pixels(get set);记录一下相关知识 setPixels: /** * Replace pixels in the bitmap with the colors in the array. Each element * in the array is a packed int ...
  • C#合并BitMap图像,生成超大bitmap

    千次阅读 2019-09-10 13:36:36
    使用c#,合并多个bitMap图像 当只需要两个图像合并的时候,可以简单的使用gdi+,把两个图像画到一个画布上面实现合并bitmap. 当需要将许多bitmap合并时,由于bitmap类限制,长度或宽度太大时会报异常,前面这种方法...
  • 异常:trying to use a recycled bitmap android.graphics.Bitmap 概意:试图使用已经recycled的Bitmap 一般情况下我们在对Bitmap进行Matrix的各种缩放、平移等处理,然后createBitmap,再对之前的Bitmap进行...
  • Bitmap转换工具

    2015-04-28 09:35:00
    非常好用的分析8583的工具。可以实现对金融数据包8583的bitmap的分析,不同的bit域有不同颜色进行区分。
  • Bitmap OutOfMemoryError

    千次阅读 2014-06-09 09:55:28
    Bitmap OutOfMemoryError 方法一:减小图片大小 方法二:及时回收bitmap内存 方法三: 优化代码结构
  • Bitmap.createBitmap函数用法

    千次阅读 2013-09-07 22:28:12
    public static Bitmap createBitmap (Bitmap src) 从原位图src复制出一个新的位图,和原始位图相同 public static Bitmap createBitmap (int[] colors, int width, int height, Bitmap.Config config)  这个函数...
  • gdiplus Bitmap 转 gdi BITMAP

    千次阅读 2014-08-20 09:51:26
    1,通过GetHBITMAP()实现 在笔者的机子上,不管PixelFormat是8bit,24bit,还是32bit,...通过以下方法查看BITMAP位深度: HBitmap to BITMAP: BITMAP bmp; ::GetObject(hbmp,sizeof(BITMAP),&bmp); 分析原因,可能是HBI
  • ImageView获取Bitmap

    万次阅读 2018-05-11 08:50:03
    Bitmap bitmap = ((BitmapDrawable) mImageView.getBackground()).getBitmap(); 这样获取那,相信大家都会遇到一个疑惑的问题,就是为什么有时候会获取成功,但是有时候却会报类型转换异常。本人是小菜鸟其实也不...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 319,734
精华内容 127,893
关键字:

bitmap