[英]How can I set the imageviews and textviews of all my activities at app startup time, not at activity creation
在用户登录后,在我的应用程序中,我有一个加载屏幕,在后台我正在做一些准备工作。 我下载用户数据和产品类别,并将它们放置在本地SQLite库中。
如何在此阶段为不同活动设置ImageViews源图像,并在创建活动本身时不加载它们?
例如,我有一个滑动菜单,该菜单也显示用户图像,并且我希望用户打开滑动菜单时该用户图像已经在该位置。 我希望当用户打开“我的资料”时,他们的数据已经被加载到那里。
我该如何实现?
数据将仅在创建活动时显示。 但是您可以做的是在后台加载图像位图并对其进行缓存。 当用户打开其滑动菜单时,只需将其设置为图像视图即可,而不是再次加载它。
您也可以使用Universal Image Loader,它只会加载一次图像。
对于我的个人资料数据,您可以在显示加载屏幕时再次从服务器获取所有数据,并将此数据保存在SharedPreferences
或应用程序上下文中,并且当用户移至我的个人资料时,只需将该数据设置为视图即可。
为了加载图像位图,您可以使用以下函数在asynctask中调用它:
public static Bitmap loadBitmap(String url) {
Bitmap bitmap = null;
InputStream in = null;
BufferedOutputStream out = null;
try {
in = new BufferedInputStream(new URL(url).openStream(), IO_BUFFER_SIZE);
final ByteArrayOutputStream dataStream = new ByteArrayOutputStream();
out = new BufferedOutputStream(dataStream, IO_BUFFER_SIZE);
copy(in, out);
out.flush();
final byte[] data = dataStream.toByteArray();
BitmapFactory.Options options = new BitmapFactory.Options();
//options.inSampleSize = 1;
bitmap = BitmapFactory.decodeByteArray(data, 0, data.length,options);
} catch (IOException e) {
Log.e(TAG, "Could not load Bitmap from: " + url);
} finally {
closeStream(in);
closeStream(out);
}
return bitmap;
}
供参考: 如何在Android中通过URL加载ImageView?
不然我发现了这个帖子你可以试试看
URL url = new URL(strUrl);
URLConnection connection = url.openConnection();
connection.setUseCaches(true);
Object response = connection.getContent();
if (response instanceof Bitmap) {
Bitmap bitmap = (Bitmap)response;
}
参考: Android图像缓存
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.