使用LevelListDrawable实现Html.fromHtml多张图片显示
2014-01-07 15:46
411 查看
stackoverflow网站果然强大,帮了我不少忙!
http://stackoverflow.com/questions/16179285/html-imagegetter-textview
首先一段html字符串
String source = "this is a test of <b>ImageGetter</b> it contains " +
"two images: <br/>" +
"<img src=\"http://developer.android.com/assets/images/dac_logo.png\"><br/>and<br/>" +
"<img src=\"http://developer.android.com/assets/images/icon_search.png\">";
然后ImageGetter里面的getDrawable(String souce)方法里面实现
这里的LodImage类是一个异步加载类,详见代码了
目前还不是很了解这个LevelListDrawable,不知道这个
addLevel
(int low, int high,
Drawable
drawable)里的low和hight有什么用途,但是官网有个例子
可能和这里的maxLevel有关,官网说android的手机充电的效果图就是使用这个类实现的,然后循环实现LevelListDrawable.setLevel(int)方法的。
http://stackoverflow.com/questions/16179285/html-imagegetter-textview
首先一段html字符串
String source = "this is a test of <b>ImageGetter</b> it contains " +
"two images: <br/>" +
"<img src=\"http://developer.android.com/assets/images/dac_logo.png\"><br/>and<br/>" +
"<img src=\"http://developer.android.com/assets/images/icon_search.png\">";
然后ImageGetter里面的getDrawable(String souce)方法里面实现
LevelListDrawable d = new LevelListDrawable(); Drawable empty = getResources().getDrawable(R.drawable.ic_launcher); d.addLevel(0, 0, empty); d.setBounds(0, 0, empty.getIntrinsicWidth(), empty.getIntrinsicHeight()); new LoadImage().execute(source, d);
这里的LodImage类是一个异步加载类,详见代码了
class LoadImage extends AsyncTask<Object, Void, Bitmap> { private LevelListDrawable mDrawable; @Override protected Bitmap doInBackground(Object... params) { String source = (String) params[0]; mDrawable = (LevelListDrawable) params[1]; Log.d(TAG, "doInBackground " + source); try { InputStream is = new URL(source).openStream(); return BitmapFactory.decodeStream(is); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Bitmap bitmap) { Log.d(TAG, "onPostExecute drawable " + mDrawable); Log.d(TAG, "onPostExecute bitmap " + bitmap); if (bitmap != null) { BitmapDrawable d = new BitmapDrawable(bitmap); mDrawable.addLevel(1, 1, d); mDrawable.setBounds(0, 0, bitmap.getWidth(), bitmap.getHeight()); mDrawable.setLevel(1); // i don't know yet a better way to refresh TextView // mTv.invalidate() doesn't work as expected CharSequence t = mTv.getText(); mTv.setText(t); } } }
目前还不是很了解这个LevelListDrawable,不知道这个
addLevel
(int low, int high,
Drawable
drawable)里的low和hight有什么用途,但是官网有个例子
<level-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:maxLevel="0" android:drawable="@drawable/ic_wifi_signal_1" /> <item android:maxLevel="1" android:drawable="@drawable/ic_wifi_signal_2" /> <item android:maxLevel="2" android:drawable="@drawable/ic_wifi_signal_3" /> <item android:maxLevel="3" android:drawable="@drawable/ic_wifi_signal_4" /> </level-list>
可能和这里的maxLevel有关,官网说android的手机充电的效果图就是使用这个类实现的,然后循环实现LevelListDrawable.setLevel(int)方法的。
相关文章推荐
- 使用LevelListDrawable实现Html.fromHtml多张图片显示
- 使用LevelListDrawable实现Html.fromHtml多张图片显示
- 使用LevelListDrawable实现Html.fromHtml多张图片显示
- Html中使用自定义图片来实现checkbox显示的方法
- TextView使用html.fromhtml加载html并显示图片
- Html中使用自定义图片来实现checkbox显示
- asp.net中使用Uploadify插件实现多张图片上传,上传后可显示缩略图、删除图片
- html+css使用空白标签巧妙实现不同尺寸的图片在容器里垂直居中的方法
- Android的TextView使用Html来处理图片显示、字体样式、超链接等
- Android TextView使用HTML处理字体样式、显示图片等
- IOS应用开发14——使用UICollectionView实现图片列表显示
- IOS使用scrollview显示大量图片,实现缓存,节省内存
- android的TextView使用Html(图片显示)格式。。。。。。
- 使用纯 CSS 实现响应式的图片显示效果
- Android TextView使用HTML处理字体样式、显示图片等
- Java使用wkhtmltox实现HTML代码生成PDF文档或者图片
- Android 使用开源库StickyGridHeaders来实现带sections和headers的GridView显示本地图片效果
- Android的TextView使用Html来处理图片显示、字体样式、超链接等
- Android 使用开源库StickyGridHeaders来实现带sections和headers的GridView显示本地图片效果
- BackgroundWorker实现的winfrom中实现异步等待加载图片显示