• Mono for android 如何动态添加View,线程内部如何更新UI.


    貌似所有设计到UI的程序原理都是一样的,子线程是不能够更新UI状态的,所以就必须使用UI自身或者第三方来更新UI.

    如 在WinForm 中 就可以使用Control.Invoke(Action action) 方法来用UI自身更新状态.当然我不是做WinForm的,更新的方法还有很多.

    在Andorid的世界里,同样的,想更新UI的状态,必须借助一个第三方势力来更新.

    下面是一个简单的动态添加一个ImageView,并从网络上获得图片的简单的例子.

      [Activity(Label = "My Activity")]
        public class SearchActivity : Activity
        {
            protected override void OnCreate(Bundle bundle)
            {
                base.OnCreate(bundle);
                this.SetContentView(Resource.Layout.Hostlayout);
    
                var layout = this.FindViewById<LinearLayout>(Resource.Id.HomeImageContent);
    
                Handler hander = new Handler();
    
                List<string> urlSource = new List<string>();
    
                foreach (var item in urlSource)
                {
                    var address = item;
                    var taks = System.Threading.Tasks.Task.Factory.StartNew(() =>
                    {
                        Runnable run = new Runnable(() =>
                        {
                            Java.Net.URL url = new Java.Net.URL(address);
                            var map = Android.Graphics.BitmapFactory.DecodeStream(url.OpenStream());
    
                            ImageView image = new ImageView(this);
                            image.SetImageBitmap(map);
                            layout.AddView(image);
                        });
                        hander.Post(run);
                    });
                }
            }
        }
    
  • 相关阅读:
    java如何操作注册表(Preferences类)(在windows的注册表中保存、读取)
    转-正则表达式
    js数字格式化千分位格式
    es6严格模式需要注意的地方
    html5手势原理知识
    js事件总结
    js键盘相关知识总结
    html5 拖放
    js学习日记-隐式转换相关的坑及知识
    移动端各种分辨率匹配
  • 原文地址:https://www.cnblogs.com/a121984376/p/3597959.html
Copyright © 2020-2023  润新知