gpt4 book ai didi

android - Android 中应该在 LayoutView 还是 ImageView 中设置背景?

转载 作者:行者123 更新时间:2023-11-29 01:36:52 24 4
gpt4 key购买 nike

以下两种情况的优缺点是什么:

  1. 使用 LayoutView(例如 RelativeLayout/LinearLayout)并使用 Drawable 对象调用 setBackground(drawable)

  2. 在 LayoutView 中使用 ImageView(宽度:fill_parent,高度:fill_parent)并调用以下内容:

    • imageView.setBackground(drawable)
    • imageView.setBackgroundResource(资源)
    • imageView.setImageBitmap(位图)
    • imageView.setImageResource(stub_id)

方法 2 的性能更好吗?如果是这样,为 ImageView 设置背景的推荐方法是什么?

最佳答案

如果我只想为我的布局设置一个简单的背景,我会坚持使用方法 1。请注意,您所指的不仅仅是在 LayoutView 上应用背景的方法,例如:

myLayout.setBackgroundColor(int color);
myLayout.setBackgroundDrawable(Drawable d);
myLayout.setBackgroundResource(int resid);

现在,选择方法 #1 的原因:

  • Android 只会膨胀一个 View ,而不是两个 View ,就像在方法 #2 中那样
  • Android 会自动将您的图像/绘图/位图调整为 LayoutView 大小。在方法 #2 中,该任务必须由您自己执行,使用 ImageView XML 属性。
  • 在方法 #2 中,您将不得不担心管理您的 ImageViewLayoutView 的其他可能的子 View(相对位置,大小、顺序),因为它们将以一种或另一种方式相关。在方法 #1 中,您的 LayoutView 背景永远不会与子 Views 混淆。
  • 就代码易读性而言,看到带有子 ImageViewRelativeLayout 其唯一功能是定义背景是没有意义的,除非是非常特殊的情况。你有 android:background 属性。在这种情况下,代码越少越好。
  • 在代码中,在方法 #2 中,您必须声明两个 View ,因此,需要更多内存才能将这些方法应用于这些 View 。在方法 #1 中,您可以在 3 行代码中完成所需的操作。

似乎有足够的理由使用方法 1。

对于问题的第二部分,使用 Drawable 设置背景的最佳方式取决于该 Drawable 的来源(来自资源、生成的 Drawable 对象等)以及您希望对该 Drawable 执行的操作(将其传递给到位图并进行一些更改等)。

您可以查看每种方法的文档,以便更好地了解何时应该使用每种方法。

关于android - Android 中应该在 LayoutView 还是 ImageView 中设置背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27413044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com