博文位址
我的github
我的部落格
我的郵箱
baiqiantao
baiqiantao
bqt20094
目錄第二種實現方式
可以在 baseactivity 中將水印布局設為根布局
<?xml version="1.0" encoding="utf-8"?>
繪製水印時,可以選擇在ondrawforeground
上繪製前景色(蓋在所有view的上面),也可以選擇在ondraw
上繪製背景色(會被所有view的背景遮蓋)。
如果需要用到繼承自其他其他layout
的水印布局,則只需將繼承的類改為relativelayout
或linearlayout
即可,其他什麼都不需要更改。
public class markframelayout extends framelayout
public markframelayout(@nonnull context context, @nullable attributeset attrs)
}@override
public void ondrawforeground(canvas canvas)
}@override
protected void ondraw(canvas canvas)
}private void initwaterpaint()
private void drawmark(canvas canvas)
public void setshowmark(boolean showmark)
}
參考
支援多行水印,支援自定義角度,支援自定義文字大小。
listlabels = new arraylist<>();
labels.add("使用者名稱:張三");
labels.add("日期:2021-6-14");
labels.add("不可擴散");
watermarkbg bgdrawable=new watermarkbg(this, labels, -10, 10);
framelayout rootview = findviewbyid(r.id.layout);
rootview.setforeground(bgdrawable);
textview bg_tv = findviewbyid(r.id.bg_tv);
bg_tv.setbackgrounddrawable(bgdrawable);
public class watermarkbg extends drawable
@override
public void draw(@nonnull canvas canvas) }}
canvas.restore();
}@override
public void setalpha(@intrange(from = 0, to = 255) int alpha)
@override
public void setcolorfilter(@nullable colorfilter colorfilter)
@override
public int getopacity()
private static int sp2px(context context, float spvalue)
}
2018-10-13 Android自定義View 自定義元件
自繪控制項也分兩種,自定義元件和自定義容器,自定義元件是繼承view類,自定義容器時繼承viewgrounp 今天主要分析下自定義元件 還是舉個例子來的實際些,假如我們要畫乙個最簡單的textview,首先想到的就是canvas.drawtext 方法,怎麼畫了?還是得一步一步來 1 寫乙個myte...
自定義view之自定義屬性
1.首先在res的values檔案下新建乙個名為attrs.xml檔案 在該xml檔案中編寫我們需要的屬性 declare styleable後面的name必須要與接下來要自定義的view名一致。attr 後面的name表示需要自定義的屬性,format表示這些屬性的型別 2.新建乙個類繼承text...
自定義view 二
自定義view的最重要的乙個部分是自定義它的外觀。根據你的程式的需求,通過ondraw方法實現繪製。在ondraw中,會傳遞給你乙個canvas。canvas封裝了繪製圖形的方法。還需要自定義乙個 paint去定義顏色樣式的填充 簡單來說 canvas定義你在螢幕上畫的圖形,而paint定義顏色,樣...