• 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);
                    });
                }
            }
        }
    
  • 相关阅读:
    golang 类型断言的学习
    如何查询每个用户的第二条记录
    PHP Slim 框架初体验之无法访问控制器
    jquery循环遍历radio单选按钮,并设置选中状态
    CI框架中自定义view文件夹位置
    PHP代码实现MySQL读写分离
    mysql实现主从复制
    wildflyのデプロイ後の保存位置
    postgresql function
    shell backup
  • 原文地址:https://www.cnblogs.com/a121984376/p/3597959.html
Copyright © 2020-2023  润新知