- 制作.9.png图片
- 编译制作好的图片
- NinePathDrawable解析:
-
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; }
时间: 2024-11-02 07:39:04