У меня есть custom view
, который я сделал, чтобы захватить подпись пользователя на Android
. view
работает отлично, и я получаю результаты, которые я хочу. Теперь мне нужно добавить водяные знаки (маленькие тексты на четырех углах фона подписи). Я делаю это на Android и iOS, так что я сделал на iOS, чтобы создать label
s, и используя некоторые конфиги, я вычисляю 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