问题描述
|
Drawable.createFromStream()方法的第二个参数是什么意思?
从Android API,我只会得到:
public static Drawable createFromStream (InputStream is,String srcName)
Create a drawable from an inputstream
在我阅读的所有示例中,我都看到它们使用字符串“ src”:相对于应用程序的根目录,这是可绘制对象被缓存的目录的名称吗?
一个并行的问题:将来我应该在哪里找到Android核心资源(例如Drawable.createFromStream()方法...),以避免此类愚蠢的问题?
解决方法
基本上是没用的:
基于Froyo源,在从资源创建九个补丁图像时使用它,但在创建常规位图时不使用:
852 private static Drawable drawableFromBitmap(Resources res,Bitmap bm,byte[] np,853 Rect pad,String srcName) {
854
855 if (np != null) {
856 return new NinePatchDrawable(res,bm,np,pad,srcName);
857 }
858
859 return new BitmapDrawable(res,bm);
860 }
您可以通过遵循Drawable代码到达那里:
createFromStream
返回:
return createFromResourceStream(null,null,is,srcName,null);
依次使用:
return drawableFromBitmap(res,srcName);
(np来自Bitmap#getNinePatchChunk();
),它调用:
return new NinePatchDrawable(res,srcName);
最后,进入NinePatch声明:
public class NinePatch
从中创建可绘制的投影
位图到九个补丁。
参数:
位图描述补丁的位图。
9补丁数据块,描述基础位图的方式
拆分并绘制。
srcName位图的源名称。可能为空。