如何在android中构build一个梯形形状?

我怎样才能创build一个像下面的图像的梯形形状?

在这里输入图像说明

我不想使用图像或9.png。

尝试这个:

<?xml version="1.0" encoding="utf-8"?> <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="292dp" android:height="172dp" android:viewportWidth="292" android:viewportHeight="172"> <path android:strokeWidth="1.5" android:strokeMiterLimit="10" android:pathData="M 27.046 96.615 L 16.416 150.396 L 271.534 150.396 L 186.495 22.836 L 37.676 22.836 L 27.046 86.615 Z" /> <path android:fillColor="#00ff00" android:strokeWidth="1.5" android:strokeMiterLimit="10" android:pathData="M 16.046 20.615 L 13.416 150.396 L 271.534 150.396 L 186.495 22.836 L 37.676 22.836 L 16.046 23.615 Z " /> </vector> 

在这里输入图像说明

您可以尝试在代码或xml中创build一个LayerDrawable 。 制作矩形形状和三angular形形状查看开发人员网站以获取更多信息: http : //developer.android.com/reference/android/graphics/drawable/LayerDrawable.html

这个类是定义和绘制一个梯形ShapeDrawableView 。 因此,作为Drawable的梯形也可以用在背景中。

 package com.stackoverflow.questions.q25768037; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.drawable.ShapeDrawable; import android.graphics.drawable.shapes.PathShape; import android.util.AttributeSet; import android.view.View; public class TrapezoidView extends View { private ShapeDrawable mTrapezoid; public TrapezoidView(Context context, AttributeSet attrs) { super(context, attrs); Path path = new Path(); path.moveTo(0.0f, 0.0f); path.lineTo(100.0f, 0.0f); path.lineTo(200.0f, 100.0f); path.lineTo(0.0f, 100.0f); path.lineTo(0.0f, 0.0f); mTrapezoid = new ShapeDrawable(new PathShape(path, 200.0f, 100.0f)); mTrapezoid.getPaint().setStyle(Paint.Style.FILL_AND_STROKE); mTrapezoid.getPaint().setStrokeWidth(1.0f); mTrapezoid.getPaint().setColor(Color.GREEN); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { mTrapezoid.setBounds(0, 0, w, h); } @Override protected void onDraw(Canvas canvas) { mTrapezoid.draw(canvas); } }