2014-09-10 39 views
10

làm cách nào để tạo hình dạng hình thang như hình dưới đây?làm thế nào để xây dựng một hình dạng hình thang trong Android?

enter image description here

Tôi không muốn sử dụng hình ảnh hoặc 9.png.

+1

sử dụng std ShapeDrawable với một Shape tùy chỉnh – pskink

+0

Sử dụng có thể vẽ vector: Xem câu trả lời của tôi dưới đây. –

+0

Kiểm tra [answer] này (http://stackoverflow.com/questions/41551094/how-to-create-leaning-list-items/41622884#41622884) –

Trả lời

12

Hãy thử điều này:

<?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> 

enter image description here

+0

Tôi đề xuất câu trả lời này. Xem câu trả lời của tôi [ở đây] (http://stackoverflow.com/a/42145439/7292819) cho các liên kết đến tài liệu và một ví dụ mà sẽ cung cấp cho một ý tưởng nhiều hơn về cách sử dụng này. – Gary99

+0

Xin lỗi vì câu hỏi của tôi nhưng tại sao bạn lại sử dụng ??? –

2

Lớp này là một View định nghĩa và vẽ một hình thang ShapeDrawable. Do đó hình thang, là một Drawable, cũng có thể được sử dụng trong nền.

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); 
    } 
} 
Các vấn đề liên quan