繁体   English   中英

如何在应用启动时而非活动创建时设置所有活动的图像视图和文本视图

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM