刚入门,请教一个功能的实现
想在软件里实现动态的加载图片的功能,图片是在数据库里保存着
请教如果实现,会用到哪些控件,有代码更好,多谢
[解决办法]
1.在服务器端准备好图片。
2.android端下载,存在本地
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错误,这会很尴尬的哦。
如果还有不明白的地方,继续回复我。
[解决办法]
那还这样的话我的开源代码刚好可以帮到你
图片异步加载
实现的是从网上根据一些链接下载图片并显示出来
[解决办法]
其实不应该建议人家使用Bitmap的,如果没有一套非常好的优化措施,尽可能的不要使用这个对象,它会占用很大的系统内存,难道你没有见过OOM错误么?
我还是建议使用Drawable,至少Android自身已经帮我们优化过了