我有一個custom view
,我用它來捕獲Android
上的用戶簽名。 view
工作正常,我得到我想要的結果。現在我需要添加水印(簽名框的背景四角上的小文本)。我在Android和iOS上這樣做,所以我在iOS上做的是創建label
,並使用一些配置我在運行時計算frame (x,y,width,heigh)
並將它們添加到自定義視圖。這適用於iOS(MonoTouch)。現在我需要在MonoForAndroid上做同樣的事情。將標籤和圖像動態添加到Android中的自定義視圖中
到目前爲止,我得到這個:
// my customView public signatureView : View, ISignatureView { // some irrelvant code here // then OnDraw (which is where I draw the signature line) protected override void OnDraw(Canvas canvas) { DrawWaterMarks(); } private void DrawWaterMarks() { // First, I create a RelativeLayout and add it to my customView to hold the labels _relativeLayout = new RelativeLayout(this.Context); var layoutParam = new RelativeLayout.LayoutParams(this.MeasuredWidth, this.MeasuredHeight); _relativeLayout.LayoutParameters = layoutParam; var viewGroup = (ViewGroup)this.RootView; viewGroup.AddView(_relativeLayout); // I then create the labels ILabel label = new Label(Context); label.Layout(watermark.x, watermark.y, 0,0); EnsureAddingWatermarkControl(label); } private void EnsureAddingWatermarkControl(View view) { if (_relativeLayout != null && view != null) { _relativeLayout.RemoveView(view); _relativeLayout.AddView(view, view.MeasuredWidth, view.MeasuredHeight); this.Invalidate(); } } }
現在上面所有的代碼工作正常,沒有異常或錯誤,但我看不到我的任何標籤。
我假設它是RelativeLayout以及尺寸的設置和我正在做的方式,但無法解決問題出在哪裏。
任何幫助將不勝感激。
是否需要再次添加它?我以爲我需要添加一次..我會給這個嘗試 –
Ur改變相對佈局不反映bcoz,你的rootview不知道它的修改。 – Priya
var viewGroup =(ViewGroup)this.RootView; 你能解釋一下你爲什麼使用這條線嗎? – Priya