Android,Drawable.createFromStream(是,srcname):第二个参数是什么意思?

Mar*_*coS 46 android drawable

Drawable.createFromStream()方法的第二个参数是什么意思?

从Android API我只得到:

public static Drawable createFromStream (InputStream is, String srcName)
Create a drawable from an inputstream
Run Code Online (Sandbox Code Playgroud)

在我看过的所有例子中,我看到他们使用字符串"src":相对于我的应用程序的根目录,它是否是缓存drawable的目录的名称?

一个平行的问题:我应该在哪里找到Android核心源(例如Drawable.createFromStream()方法...),以避免将来出现这种愚蠢的问题?

Ale*_*dam 47

它基本上没用:

基于Froyo源,它在从资源创建九个补丁图像时使用,但在创建常规Bitmap时不使用:

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  }
Run Code Online (Sandbox Code Playgroud)

按照Drawable代码到达那里:

createFromStream 收益:

return createFromResourceStream(null, null, is, srcName, null);
Run Code Online (Sandbox Code Playgroud)

反过来使用:

return drawableFromBitmap(res, bm, np, pad, srcName);
Run Code Online (Sandbox Code Playgroud)

(np来自Bitmap#getNinePatchChunk();)这个叫:

return new NinePatchDrawable(res, bm, np, pad, srcName);
Run Code Online (Sandbox Code Playgroud)

最后,您将看到NinePatch声明:

public class NinePatch
Run Code Online (Sandbox Code Playgroud)

创建从位图到九个补丁的可绘制投影.

参数:

位图描述补丁的位图.

chunk 9补丁数据块,描述底层位图如何拆分和绘制.

srcName位图源的名称.可能为空.