android .9 图片的全能适配方法

public static Drawable getScaleNinePatchDrawable(int resId) {
        Activity mContext = WaWaSystem.getActivity();
        int standardBmpHeight = 413;
        BitmapFactory.Options optDecodeBounds = new BitmapFactory.Options();
        optDecodeBounds.inJustDecodeBounds = true;
        InputStream isDecodeBounds = mContext.getResources().openRawResource(
                resId);
        BitmapFactory.decodeStream(isDecodeBounds, null, optDecodeBounds);
        System.out.println("原始图片高度:" + optDecodeBounds.outHeight + ",原始图片宽度:"
                + optDecodeBounds.outWidth);

        Rect padding = new Rect();
        BitmapFactory.Options opt = new BitmapFactory.Options();
        opt.inPreferredConfig = Bitmap.Config.ARGB_8888;
        opt.inPurgeable = true;
        opt.inInputShareable = true;
        opt.inTargetDensity = mContext.getResources().getDisplayMetrics().densityDpi;
        float heightScalePX = ((Activity) mContext).getWindowManager()
                .getDefaultDisplay().getHeight()/480f;
        opt.inDensity = (int) (opt.inTargetDensity / (heightScalePX * ((float) standardBmpHeight / optDecodeBounds.outHeight)));
        InputStream is = mContext.getResources().openRawResource(resId);
        Bitmap newBmp = BitmapFactory.decodeStream(is, padding, opt);
        newBmp.setDensity(mContext.getResources().getDisplayMetrics().densityDpi);
        if (newBmp.getNinePatchChunk() == null || padding == null) {
            System.out.println("BitmapDrawable");
            return new BitmapDrawable(mContext.getResources(), newBmp);
        } else {
            System.out.println("NinePatchDrawable");
            return new NinePatchDrawable(mContext.getResources(), newBmp,
                    newBmp.getNinePatchChunk(), padding, String.valueOf(resId));
        }
    }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值