想在软件里实现动态的加载图片的功能,图片是在数据库里保存着
请教如果实现,会用到哪些控件,有代码更好,多谢

解决方案 »

  1. 因为你的要求还不够具体。比如图片从哪里的数据库获取到,是本地sqlite还是服务器上的xxx数据库?再比如加载的图片如何展现出来?等等推荐用瀑布流来实现,控件的话没什么特别的,就是linaerlayout,imageview,scrollview这些最基本的。倒是你要注意如何获取图片资源,这里会用到线程,会比较麻烦。暂时就这么多了,有不懂的再问吧。
      

  2. 1.在服务器端准备好图片。
    2.android端下载,存在本地
    3.显示
    没有特别饶人的地方吧,一步步实现就行了哪里不懂再问我
      

  3. 其实很简单啦。
    不用管图片在哪里存,如果是在本地数据库,那肯定是通过二进制流存的,那么,就可以使用Drawable的createFromStream方法来获取流从而创建一个Drawable对象,之后将这个对象设置到ImageView中即可;
    如果图片是在服务器中的,同样可以采用以上做法,只不过需要用到Url的流读取方式,其实就是除了获取流的方式不同,创建图片对象是一样的;
    如果图片可以在服务器中解析成URl地址,比如:htt://tt.xximage.png,这样的格式,那么更简单,是哟娜规定方法同上,只不过其中的参数值可以直接指定:
    Drawable.createFromStream(new URL("htt://tt.xximage.png").openStream(), "xxx.png");
    得到Drawable对象,设置到ImageView的方法都一样;其实说白了,如果你的图片是存在数据库中,那不管存在那里,它肯定是流的方式,就只能通过流的方式获取;
    如果在数据库中存的是图片的绝对路径,要是在服务器中的,可以拼接成一个Url来获取,若是在本地的,那就可以直接使用绝对路径来创建Drawable对象,更加的简单,Drawable.createFromPath方法即可;另外需要说明一点,请尽可能的不要使用Bitmap对象,它会占用系统大量资源,如果图片过多或者过大,就会导致程序OOM错误,这会很尴尬的哦。如果还有不明白的地方,继续回复我。
      

  4. 用imageview吧数据库里面的数据读成bitmap的形式 然后setbitmap就行了
      

  5. 其实不应该建议人家使用Bitmap的,如果没有一套非常好的优化措施,尽可能的不要使用这个对象,它会占用很大的系统内存,难道你没有见过OOM错误么?
    我还是建议使用Drawable,至少Android自身已经帮我们优化过了
      

类似问题 »