【问题标题】:How to draw outwards rounded corner in Android Studio with XML如何使用 XML 在 Android Studio 中绘制向外的圆角
【发布时间】:2020-11-01 15:31:23
【问题描述】:

我正在尝试制作一个可绘制的容器背景,但我从设计师那里得到的设计有点复杂。我需要创建一个在顶部和底部具有圆角但底部角向外弯曲的矩形,如下图所示:

我现在想到的解决方案是使用 PNG 制作一个 9-patch 可绘制对象,但有没有办法仅使用 xml 中的形状可绘制对象或使用矢量可绘制对象来实现这一点?我试图将所有可绘制资产尽可能地保留为矢量。我目前正在避免使用诸如 PNG 之类的光栅图像。但如果没有其他方法,我终究还是只能使用 9-patch drawables。

【问题讨论】:

  • 一个非常简单的答案是 VectorDrawable,您可以在 Adob​​e Illustrator 上绘制它以获得完美的形状
  • 我可以用 Inkscape 绘制一个可绘制的矢量,但问题是当我放大形状时。比如我只垂直拉伸,边角也会歪。
  • 你可以把它做成一个imageview,并且设置缩放类型,这样向量就不会被拉伸,只会被缩放

标签: android android-studio android-layout


【解决方案1】:
  1. 使用图层列表创建可绘制资源文件
  2. 创建另外两个可绘制资源文件,其中一个选择器标签作为父标签,一个项目的子标签和另一个形状的子标签
 <selector>
   <item>
      <shape android:shape=“rectangle”>
         <corners android:radius = “50dp”>
         <solid android:color= “@color/orange”>
      </shape>
  </item>
</selector>

第二个矩形

<selector>
    <item>
       <shape android:shape=“rectangle”>
          <corners android:radius = “50dp”>
          <solid android:color= “@color/gold”>
       </shape>
   </item>
</selector>

在图层列表资源文件中


<layer-list>
    <item android:drawable =“@drawable/the_orange_rectangle_rsc_file”>
    <item android:drawable =“@drawable/the_gold_rectangle_rsc_file”>
</layer-list>

【讨论】:

  • 我不是指里面的两个矩形。我指的是容器本身。顶角和底角有奇怪曲线的那个。里面的那两个按钮只是用来表明我正在制作一个模态/表单。
猜你喜欢
  • 1970-01-01
  • 2021-05-18
  • 1970-01-01
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
  • 2021-07-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多