自己定義帶三角形箭頭的TextView

2021-09-07 10:34:07 字數 2421 閱讀 2815

<?xml version="1.0" encoding="utf-8"?

>

package com.example.sanjjiaoxing;

import android.content.context;

import android.content.res.typedarray;

import android.graphics.canvas;

import android.graphics.color;

import android.graphics.paint;

import android.graphics.path;

import android.graphics.rectf;

import android.util.attributeset;

import android.util.typedvalue;

import android.view.view;

import android.widget.linearlayout;

import android.widget.textview;

/*** @author wuxif_000  帶三角形箭頭的(三角形在一定高度居中,超過該高度無論......),四角帶圓角, *

*/public class arrowtextview extends textview

private void ini(context context, attributeset attrs)

public arrowtextview(context context, attributeset attrs, int defstyle)

public arrowtextview(context context)

private float radius;

private float   arrowwidth;

/*** 三角形箭頭在此高度居中......

*/private float  arrowinheight;

private int color;

/*** @param arrowwidth  三角形箭頭的寬度.......

*/public void setarrowwidth(float arrowwidth)

/*** @param arrowinheight   三角形箭頭在此高度居中......

*/public void setarrowinheight(float arrowinheight)

/*** @param radius  矩形四角圓角的半徑..........

*/public void setradius(float radius)

/*** @param color   箭頭矩形的背景色.........

*/public void setbgcolor(int color)

@override

protected void ondraw(canvas canvas)

if(arrowwidth==0)

//帶圓角的矩形(左邊減去三角形的寬度...........)

int left = (int) (getpaddingleft()-arrowwidth);

int height=getheight();

canvas.drawroundrect(new rectf(left, 0, getwidth(), height), radius, radius, paint);

if(arrowinheight==0)

height = (int) (height>arrowinheight?

arrowinheight:height);

//畫三角形

path path=new path();

path.setfilltype(path.filltype.even_odd);

float ymiddle = height/2;

float ytop=ymiddle-(arrowwidth/2);

float ybottom=ymiddle+(arrowwidth/2);

path.moveto(0, ymiddle);

path.lineto(left, ytop);

path.lineto(left, ybottom);

path.lineto(0, ymiddle);

path.close();

canvas.drawpath(path, paint);

// canvas.restore();

// canvas.translate(left, 0);

super.ondraw(canvas);

}//使用方法

定義三角形類

源程式 程式頭部注釋開始 程式的版權和版本宣告部分 檔名稱 定義三角形的周長和面積 作 者 114 3 張宗佳 完成日期 2012 年 3 月 12 日 版 本 號 vc.2 對任務及求解方法的描述部分 輸入描述 問題描述 設計乙個三角形類,請給出各成員函式的定義 程式輸出 輸出三角形的周長和面積 ...

CSS 帶邊框的三角形

思路是將2個三角形疊加起來,外層的三角形稍微大一些。思路和 css 內圓角 這個筆記的 方法一 類似。這個筆記最後會補充 css 畫三角形 這個筆記裡記漏的一點。html css parent child 以上是最終 逐步分析 css parent child 一開始的思路是分別生成外層和內層的三角...

求大三角形中三角形個數

一道筆試程式設計題要求求乙個大三角形中所有小三角形的個數,大約是下面這種情況 首先想到是的將問題由求邊長為n的三角形個數 求邊長為n 1的三角形個數 求邊長為1的三角形個數 1,回溯求得所有三角形個數。但是再仔細一看因為有重疊三角形和倒置的三角形,所以這個方法不可行。接著找到三角形個數由三部分組成 ...