如何使用Android Canvas为Fragment / CustomView绘制自定义背景?

时间:2018-01-22 17:16:28

标签: java android android-fragments canvas

我正在创建一个自定义片段,用作从底部向上滑动的自定义导航抽屉。问题是我需要为片段背景的顶部创建一条曲线。我需要一些帮助来通过使用Canvas绘制形状来获得曲线。不确定我是否应该创建两个形状并将它们混合在一起以获得我想要的结果,或者只是创建一个自定义背景图像。

这是我在Sketch中创建的模拟的图像: Curved Nav Drawer Mock

2 个答案:

答案 0 :(得分:1)

您可以将您的布局包装在cardview中并将cardview的转角半径设置为10dp。通过这种方式,您可以在抽屉片段中实现曲线。

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view_outer"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_gravity="center"
    card_view:cardBackgroundColor="@android:color/transparent"
    card_view:cardCornerRadius="10dp"
    card_view:cardElevation="3dp" >

    <!-- Inner layout -->

</android.support.v7.widget.CardView>

答案 1 :(得分:0)

所以我通过首先在Sketch中创建一个符号来获取在Sketch中创建的形状的矢量图像来解决问题。然后我将符号导出为矢量(SVG)文件。

为了正确配置向量,我使用SVG to Vector Converter然后创建了一个我粘贴到drawable文件夹中的xml文件。