[Android]加载外部.9图片

  1. 制作.9.png图片

  2. 编译制作好的图片

  3. NinePathDrawable解析:


  4.  public static Drawable decodeStream(Resources resources, InputStream is, Options options) throws IOException{
            Bitmap bitmap = BitmapFactory.decodeStream(is);
            byte[] chunks = bitmap.getNinePatchChunk();
            boolean isNinePatchChunk = NinePatch.isNinePatchChunk(chunks);
            Log.v(TAG, "isNinePatchChunk:"+isNinePatchChunk);
            if(!isNinePatchChunk){
                return new BitmapDrawable(resources, bitmap);
            }else {
                Rect padding = new Rect();
                padding.left = getInt(chunks, 12);
                padding.right = getInt(chunks, 16);
                padding.top = getInt(chunks, 20);
                padding.bottom = getInt(chunks, 24);
                return new NinePatchDrawable(resources, bitmap, chunks, padding, null);
            }
        }
        private static int getInt(byte[] chunk, int from) {
            int result = 0;
            result = ((result << 8) | (chunk[from + 3] & 0xFF));
            result = ((result << 8) | (chunk[from + 2] & 0xFF));
            result = ((result << 8) | (chunk[from + 1] & 0xFF));
            result = ((result << 8) | (chunk[from + 0] & 0xFF));
            return result;
        }

本文出自 “JackyAnngo” 博客,请务必保留此出处http://jackyanngo.blog.51cto.com/5263823/1614542

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。