gpt4 book ai didi

android - 如何绘制自定义背景

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:36:56 25 4
gpt4 key购买 nike

我必须设计一个三角形并在其中以 45 度角显示一些文本,在三角形下方我必须在三角形边界外放置一个 TextView 以显示一些其他文本。它就像一面旗帜。但是,当我使用相对布局并放置三角形背景时,它仍然充当矩形,遮挡了我的 TextView 。下面是我使用的代码:

<RelativeLayout
android:id="@+id/relative"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@drawable/image_sticker" >

<com.example.AngledTextView
android:id="@+id/textViewx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:rotation="52"
android:textColor="#FFFFFF" />
</RelativeLayout>

我的 AngledTextView 类:

public class AngledTextView extends TextView  {  

private int mWidth;
private int mHeight;


public AngledTextView(Context context, AttributeSet attrs) {
super(context, attrs);

}



@Override
protected void onDraw(Canvas canvas) {
canvas.save();
/*Paint textPaint = new Paint();
int xPos = (canvas.getWidth() / 2);
int yPos = (int) ((canvas.getHeight() / 2) - ((textPaint.descent() + textPaint.ascent()) / 2)) ;

canvas.rotate(45, xPos,yPos); */

super.onDraw(canvas);
canvas.restore();
}
}

问题: enter image description here

任何提示或建议教程的链接将不胜感激:)

最佳答案

我最近做过类似的事情。以下是我使用过的一些技巧:

  • 创建自定义 View 类。
  • 在您的 init 方法中至少初始化一个 Paint(半透明、填充)和一个 Path。它应该从构造函数中调用。
  • 在您的 onDraw 方法上自定义路径。例如:

    mPath = new Path();
    mPath.moveTo(.0f, this.getHeight());
    mPath.lineTo(this.getWidth(), this.getHeight());
    mPath.lineTo(this.getWidth(),0.25f*this.getHeight());
    mPath.lineTo(.0f, .0f);
    mPath.lineTo(.0f, this.getHeight());
  • 这将使 Path 类似于梯形。只需自定义您的点即可制作三角形。然后调用

    canvas.clipPath(mPath);
    canvas.drawPath(mPath,mPaint);
  • 根据这些点,您将绘制三角形。您可以将一个字符串传递给您的 init 方法并在绘制路径之前调用 drawText:

    canvas.drawText(str, xTit, yTit, mPaintTit);

我希望这会有所帮助 =)

关于android - 如何绘制自定义背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26571881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com