相关疑难解决方法(0)

Bitmap.Config.HARDWARE与Bitmap.Config.RGB_565

API 26 添加了新选项 Bitmap.Config.HARDWARE:

特殊配置,当位图仅存储在图形内存中时.此配置中的位图始终是不可变的.对于具有位图的唯一操作是在屏幕上绘制它的情况,它是最佳的.

文档中未解释的问题:

  1. 如果我们现在总是喜欢Bitmap.Config.HARDWAREBitmap.Config.RGB_565当速度是重中之重,质量和可变性都没有(如缩略图等)?
  2. 使用此选项解码后的像素数据实际上不消耗任何堆内存并仅驻留在GPU内存中吗?如果是这样的话,OutOfMemoryException在处理图像时,这似乎最终会令人担忧.
  3. 我们应该从这个选项中获得与RGB_565,RGBA_F16或ARGB_8888相比的质量?
  4. 是的速度解码本身相同/更好/更值得相较于RGB_565解码?
  5. (感谢@CommonsWare在评论中指出它)如果我们在使用此选项解码图像时超过GPU内存会怎样?会抛出一些异常(也许是相同的OutOfMemoryException:)?

java performance android image bitmap

32
推荐指数
1
解决办法
3872
查看次数

无法在XML的位图中加载矢量Drawable

这是我的第一个在中加载Vector-Drawable的代码layer-list。后来我不得不改变我的矢量可绘制的颜色。我发现我应该添加位图以使用tint属性。这是我的第一个代码和vector drawable在中显示良好layer-list

<item>
    <shape
        android:padding="1dp"
        android:shape="oval">
        <corners
            android:bottomLeftRadius="5dp"
            android:bottomRightRadius="5dp"
            android:topLeftRadius="5dp"
            android:topRightRadius="5dp"/>
        <solid android:color="@color/accent"/>
    </shape>
</item>
<item android:drawable="@drawable/ic_check_black_24px"/> // this is vector drawable
Run Code Online (Sandbox Code Playgroud)

所以我将代码更改为此。我无法在XML的位图中加载vector-Drawable。

<item>
    <shape
        android:padding="1dp"
        android:shape="oval">
        <corners
            android:bottomLeftRadius="5dp"
            android:bottomRightRadius="5dp"
            android:topLeftRadius="5dp"
            android:topRightRadius="5dp"/>
        <solid android:color="@color/accent"/>
    </shape>
</item>
<item>
    <bitmap
        android:src="@drawable/ic_check_black_24px"
        android:tint="@color/white"/>
</item>
Run Code Online (Sandbox Code Playgroud)

问题在这里。我无法在位图中加载vector-drawable,这会导致我的应用崩溃。

android vector bitmap layer-list

5
推荐指数
0
解决办法
968
查看次数

标签 统计

android ×2

bitmap ×2

image ×1

java ×1

layer-list ×1

performance ×1

vector ×1