如何在SQLite数据库中存储从URL检索到的图像?

编程入门 行业动态 更新时间:2024-10-25 10:32:09
本文介绍了如何在SQLite数据库中存储从URL检索到的图像?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在从URL中检索图像. 除了缓存图像,是否有可能将其存储在SQLite数据库中?

I am retrieving images from a url. Instead of caching the images, would it by any chance be possible to store it in a SQLite database?

/** Simple Constructor saving the 'parent' context. */ public ImageAdapter(Context c) { this.myContext = c; } /** Returns the amount of images we have defined. */ public int getCount() { return this.myRemoteImages.length; } /* Use the array-Positions as unique IDs */ public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } /** Returns a new ImageView to * be displayed, depending on * the position passed. */ public View getView(int position, View convertView, ViewGroup parent) { ImageView i = new ImageView(this.myContext); try { URL aURL = new URL(myRemoteImages[position]); URLConnection conn = aURL.openConnection(); conn.connect(); InputStream is = conn.getInputStream(); /* Buffered is always good for a performance plus. */ BufferedInputStream bis = new BufferedInputStream(is); /* Decode url-data to a bitmap. */ Bitmap bm = BitmapFactory.decodeStream(bis); bis.close(); is.close(); Log.v(imageUrl, "Retrieving image"); /* Apply the Bitmap to the ImageView that will be returned. */ i.setImageBitmap(bm); } catch (IOException e) { Log.e("DEBUGTAG", "Remtoe Image Exception", e); } /* Image should be scaled as width/height are set. */ i.setScaleType(ImageView.ScaleType.FIT_CENTER); /* Set the Width/Height of the ImageView. */ if(Build.VERSION.SDK_INT >= 11){ i.setLayoutParams(new Gallery.LayoutParams(450, 300)); return i; } else{ i.setLayoutParams(new Gallery.LayoutParams(125, 125)); return i; } } /** Returns the size (0.0f to 1.0f) of the views * depending on the 'offset' to the center. */ public float getScale(boolean focused, int offset) { /* Formula: 1 / (2 ^ offset) */ return Math.max(0, 1.0f / (float)Math.pow(2, Math.abs(offset))); } }

将imageAdapter设置为在Gallery中加载图像

Set the imageAdapter to load images in Gallery

((Gallery) findViewById(R.id.gallery)) .setAdapter(new ImageAdapter(MainMenu.this));

推荐答案

protected Drawable Imagehandler(String url) { try { url=url.replaceAll(" ", "%20"); InputStream is = (InputStream)this.fetch(url); Drawable d = Drawable.createFromStream(is, "src"); return d; } catch (MalformedURLException e) { System.out.println(url); System.out.println("error at URI"+e); return null; } catch (IOException e) { System.out.println("io exception: "+e); System.out.println("Image NOT FOUND"); return null; } } protected Object fetch(String address) throws MalformedURLException,IOException { URL url = new URL(address); Object content = url.getContent(); return content; }

这将在运行时将imageUrl转换为Drawble,然后将Drawble设置为Gallery的Imageview

this will convert your imageUrl to Drawble at runtime, then set the Drawble to Imageview of Gallery

更多推荐

如何在SQLite数据库中存储从URL检索到的图像?

本文发布于:2023-10-07 10:40:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1469168.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据库中   图像   如何在   SQLite   URL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!