自定义形状的布局,底线在Android中弯曲

时间:2018-01-31 14:47:52

标签: java android xml

我想制作一个像底部弯曲的图片中的布局。

我尝试在stackoverflow中使用一些示例,但无法准确了解如何执行此操作。

现在我正在尝试使用可绘制的xml并将其包含在布局中:

`<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners
        android:bottomLeftRadius="0dp"
        android:bottomRightRadius="5dp"
        android:topLeftRadius="0dp"
        android:topRightRadius="0dp" />
    <padding
        android:bottom="5dp"
        android:left="20dp"
        android:right="0dp"
        android:top="0dp" />
    <stroke
        android:width="0.5dp"
        android:color="@color/colorPrimary" />
    <solid android:color="@color/colorPrimary" />
</shape>`

screen image

1 个答案:

答案 0 :(得分:1)

你可以这样做 -
创建自定义视图为 -

public class CustomDrawableView extends View {
  Paint paint;
  void init(){
    paint =  new Paint();
  }
}

现在在onDraw()方法中你可以绘制为 -
首先绘制一个高度= getHeight()/ 2的矩形 width = getWidth()

onDraw(Canvas canvas){
  Rect r = new Rect(0, 0, width , height );
  paint.setStyle(Paint.Style.FILL);
  paint.setColor(Color.RED);
  canvas.drawRect(r, paint);
  int centerX=widht;
  int centerY = -50;
  int radius = Math.sqrt((0-centerX)*(0-centerX) + (height-centerY )*(height-centerY)); 
  canvas.drawCircle(width, height -50 , radius, paint); // for big circle

}

将CustomDrawableView的高度和宽度设置为与父级匹配,您也可以根据需要调整中心。