Android、show activity、下载图像并在imageview上显示(按顺序)
我正在尝试解决这个问题,现在我有一个Details页面活动(根据从ListView中选择的项目从DB中以友好方式加载)。每个详细信息页面可以有1到5个图像,这些图像是从在线服务器下载的。我遇到的问题是,在下载图片之前,活动不会显示 基本上,直到onCreate完成,活动才会显示。我正在使用一个线程来下载图像,这样UI就不会冻结,我的问题是,我在哪里可以下载图像视图并将其设置为下载的位图,这样用户在单击列表项后可以立即看到活动和信息,然后在下载后下载并设置图像 我试着把这条线索写在简历上,但我觉得也没用。最好的办法是什么 问候, George您需要实现一个新的。它在后台线程上执行,并防止主线程阻塞。您只需创建一个扩展AsyncTask的类,如下所示 编辑-是的,这将在下载图像之前显示您的活动。您只需在onCreate()中调用AsyncTask的execute()方法。请查看上面有关AsyncTasks的页面,以获得完整的概述。实现起来非常简单,如果异步任务尚未完成,您只需了解配置更改 您可能还希望查看内存中的位图,以防止它们再次被不必要地下载Android、show activity、下载图像并在imageview上显示(按顺序),android,imageview,Android,Imageview,我正在尝试解决这个问题,现在我有一个Details页面活动(根据从ListView中选择的项目从DB中以友好方式加载)。每个详细信息页面可以有1到5个图像,这些图像是从在线服务器下载的。我遇到的问题是,在下载图片之前,活动不会显示 基本上,直到onCreate完成,活动才会显示。我正在使用一个线程来下载图像,这样UI就不会冻结,我的问题是,我在哪里可以下载图像视图并将其设置为下载的位图,这样用户在单击列表项后可以立即看到活动和信息,然后在下载后下载并设置图像 我试着把这条线索写在简历上,但我觉得
public class DownloadItemDetails extends AsyncTask<String, Void, ArrayList<Bitmap>{
protected ArrayList<Bitmap> doInBackground(String...params){
//Download each Bitmap here, and add them to a list to be displayed later
}
protected void onPostExecute(ArrayList<Bitmap> results){
//This method executes on the main thread, so after your downloads finish
//You can set your imageviews in your Details Page here
}
公共类DownloadItemDetails扩展了AsyncTask根据您的好奇心,为了让用户满意,我认为您必须使用Github提供的库。此库为您提供异步图像加载、缓存和显示
您也可以从Github使用相同的方法。它还获取远程图像并缓存它们。它特别适合在列表、网格和地图中显示远程图像。创建AsyncTask类,在onPreExecute()方法中启动进度对话框,在doInBackground()方法中下载所有图像并将其放入ImageView,最后在onPostExecute()显示活动。问题是我需要首先显示活动,然后下载并显示图像,否则用户需要等待4-5秒才能真正显示活动,这会在图像完全下载之前启动活动吗?@George请查看我的更新答案。希望这能澄清一个bitI最终做的有点不同,因为我使用C#with xamarin,我做的是在OnCreate上启动线程,然后在线程上使用runUnuithRead(()=>setImage(thisBusiness.logo));setImage只是以正常的方式设置,效果很好。但因为是你的答案让我走上了正确的道路,所以我把这个标记为答案。