【问题标题】:Android - How to give your layout a 3D style?Android - 如何为您的布局赋予 3D 风格?
【发布时间】:2020-07-14 02:33:53
【问题描述】:

我正在网上冲浪以寻找一种新的 android 布局样式,我发现了一种非常有趣的样式。这是图片。

我知道的不仅仅是布局的基础知识,但我想要的是如何让 3d 样式看起来像上图中的那样?尤其是#7881 Code Box

这是我尝试过的东西。

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:bottom="-25dp"
        android:top="-25dp"
        android:left="25dp"
        android:right="25dp">
        <rotate android:fromDegrees="20">
            <shape android:shape="rectangle">
                <size
                    android:width="50dp"
                    android:height="100dp"/>
                <solid android:color="#E30B3E"/>
            </shape>

        </rotate>
    </item>
</layer-list>

输出是这样的

总体而言,它为textview 提供了 3d 外观,但我希望在图像中有类似的东西。

有什么建议吗?

【问题讨论】:

  • 我认为 xml drawables 不可能。在运行时可能是可能的(见链接),但效率低下。我只会在一些图像编辑软件中创建图像/矢量。我猜这也是他们在你的截图中所做的。 stackoverflow.com/questions/225548/…
  • @einUsername 是对的。由于 xml drawables 只能生成基本形状,而带圆角的梯形不是基本形状,因此无法使用这种技术。请参阅我的答案以获取免费工具以轻松创建复杂的 svg 并使用 AS 导入它们

标签: android android-layout


【解决方案1】:

它非常简单,只需在 CardView 上使用 android:rotationX 属性 像这样

    <com.google.android.material.card.MaterialCardView
        ...
        android:rotationX="20"
        ...

【讨论】:

    【解决方案2】:

    这很容易,只要盒子的形状不应该是动画的。

    1. 转到https://www.figma.com/ 并开始一个新项目(免费)
    2. 将您在那里创建的任何形状导出为 svg
    3. 使用资源管理器将此 svg 导入 Android Studio
    4. 将新的可绘制对象添加为框的背景。

    额外的输入,所以你的 50 分不会被浪费;):

    • 您可以找到几个适用于 figma 的 Android 预设。像 UI 元素或按钮。例如here。更多信息请在谷歌上搜索“Figma Android UI kit”

    • 您可以根据自己的喜好编辑生成的 SVG。由于它只是一个文本文件,你可以自定义它的颜色(也可以在xml中使用backgroundTint)等等。

    【讨论】:

    • 要添加..你需要为不同的屏幕尺寸创建drawables
    • @AgentP 在使用 svgs 时不会。它们在 xml 中有一个 dp 值,这使 Android 能够相应地缩放它们。要利用它,据我所知,最低 SDK 需要 21(棒棒糖)
    • 是的,你是对的......我对 dp 本身的定义一分钟感到困惑
    • 您不必根据设备大小创建多个 SVG。简单地使用sdp 而不是dp,它会根据设备自动调整大小。 github.com/intuit/sdp
    • 老兄,这个图书馆已有数百年历史了。如果您使用 SVG,那么您只需要一个 xml 文件。没有库,没有多个文件,没有缩放。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    • 2015-09-29
    • 2020-08-25
    相关资源
    最近更新 更多