【问题标题】:Android, Drawable.createFromStream(is, srcname): what's the 2nd parameter meaning?Android,Drawable.createFromStream(is, srcname):第二个参数是什么意思?
【发布时间】:2011-09-01 15:07:43
【问题描述】:

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

我只能从 Android API 获得:

public static Drawable createFromStream (InputStream is, String srcName)
Create a drawable from an inputstream

在我读过的所有示例中,我看到它们使用字符串“src”:它是相对于我的应用程序根目录的可绘制对象缓存的目录的名称吗?

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

【问题讨论】:

    标签: android drawable


    【解决方案1】:

    基本没用

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

    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, bm, np, pad, srcName);
    

    (np 来自Bitmap#getNinePatchChunk();)这调用:

    return new NinePatchDrawable(res, bm, np, pad, srcName);
    

    最后,您会看到 NinePatch 声明:

    public class NinePatch
    

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

    参数

    bitmap 描述补丁的位图。

    chunk 描述底层位图如何的 9-patch 数据块 被分割和绘制。

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

    【讨论】:

      猜你喜欢
      • 2016-10-05
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      相关资源
      最近更新 更多