首页 > 移动平台 > 详细

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

时间:2014-03-14 19:13:56      阅读:449      评论:0      收藏:0      [点我收藏+]

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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[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);
              });
          }
      }
  }

Mono for android 如何动态添加View,线程内部如何更新UI.,布布扣,bubuko.com

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

原文:http://www.cnblogs.com/a121984376/p/3597959.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!