zoukankan      html  css  js  c++  java
  • 读取sd卡下图片,由图片路径转换为bitmap

    public Bitmap convertToBitmap(String path, int w, int h) {
                BitmapFactory.Options opts = new BitmapFactory.Options();
                // 设置为ture只获取图片大小
                opts.inJustDecodeBounds = true;
                opts.inPreferredConfig = Bitmap.Config.ARGB_8888;
                // 返回为空
                BitmapFactory.decodeFile(path, opts);
                int width = opts.outWidth;
                int height = opts.outHeight;
                float scaleWidth = 0.f, scaleHeight = 0.f;
                if (width > w || height > h) {
                    // 缩放
                    scaleWidth = ((float) width) / w;
                    scaleHeight = ((float) height) / h;
                }
                opts.inJustDecodeBounds = false;
                float scale = Math.max(scaleWidth, scaleHeight);
                opts.inSampleSize = (int)scale;
                WeakReference<Bitmap> weak = new WeakReference<Bitmap>(BitmapFactory.decodeFile(path, opts));
                return Bitmap.createScaledBitmap(weak.get(), w, h, true);
            }
     
    其中w和h你需要转换的大小
     
    path转换为bitmap:上面方法即可;
    imageview获取drawable并转换为 bitmap :Bitmap bt= ((BitmapDrawable) mImageview.getDrawable()).getBitmap();
    resourceid转换为bitmap:Bitmap bt = BitmapFactory.decodeResource(getResources(), R.drawable.resourceid);
    Drawable转换为bitmap:Bitmap bt= ((BitmapDrawable) Drawable).getBitmap();
    因为BitmapDrawable是继承Drawable,所以可以灵活的转换
  • 相关阅读:
    Android ListView带CheckBox实现单选
    android 登录和设置IP/端口功能
    html5 10大html5前端框架
    Html5 8个强大的基于Bootstrap的CSS框架
    Android 探究 LayoutInflater setFactory
    Android onLoadFinished与onLoaderReset
    Android android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 1
    Android 中AIDL的使用与理解
    Android Studio查看android源码
    ArrayList和LinkedList的用法区别:
  • 原文地址:https://www.cnblogs.com/yaya-Android/p/4515131.html
Copyright © 2011-2022 走看看