我正在使用Xamarin开发一个多平台应用程序,这是一种相框。我从SDCARD读取文件,我想每2秒显示一次。 由于以下代码我只能显示第一个图像,而不是其余的,我不知道为什么。 我使用ImageView显示每个图像和Timer事件。
<div class="list-group">
<span ng-repeat="list in vm.lists"
class="list-group-item">
<a class="btn btn-primary pull-right" ng-click="vm.elim(list)">
<i class="glyphicon glyphicon-trash"></i>
</a>
<a class="btn btn-primary pull-right" ui-sref=
"lists.view({ listId:list._id })">
<i class="glyphicon glyphicon-edit"></i>
</a>
<h4 class="list-group-item-heading" ng-bind="list.name"></h4>
</span>
</div>
function elim(list) {
alert("works");
if ($window.confirm('Are you sure you want to delete?')) {
vm.list.$remove($state.go('lists.list'));
}
}
我不确定使用TimerTask是否会很棒,因为我想要一个多平台应用程序。
答案 0 :(得分:2)
确保您在UI线程上运行更新。
private void OnTimedEvent(Object source,ElapsedEventArgs e)
{
if (actualImage < imagesArray.Count-1)
{
actualImage++;
//imageView = FindViewById<ImageView>(Resource.Id.imageView1);
RunOnUiThread(() => {
Bitmap imageBitmap = BitmapFactory.DecodeFile((String)imagesArray[actualImage]);
imageView.SetImageBitmap(imageBitmap);
});
t.Start();
}
}
注意:在Android上加载图片总是很痛苦。在几张图像之后,您可能会遇到OutOfMemory异常。如果您不想FFImageLoading,则必须使用UniversalImageLoader或handle image loading yourself:D