我想通过网络下载已编译的Ninepatch文件并将其设置为ImageView。 我已经找到了以下解决方案:Link,Link
我的代码是:
public class DownloadImageTask extends AsyncTask<URL, Void, Bitmap> {
private ImageView _imgView;
private Context _context;
public DownloadImageTask(Context context, ImageView imgView) {
_context = context;
_imgView = imgView;
}
@Override
protected Bitmap doInBackground(URL... params) {
Bitmap networkBitmap = null;
URL networkUrl = params[0];
try {
networkBitmap = BitmapFactory.decodeStream(networkUrl.openConnection().getInputStream());
}
catch (IOException e) {
e.printStackTrace();
}
return networkBitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
byte[] chunk = result.getNinePatchChunk();
if (NinePatch.isNinePatchChunk(chunk)) {
NinePatchDrawable ninePatch = new NinePatchDrawable(_context.getResources(), result, chunk, new Rect(), null);
_imgView.setImageDrawable(ninePatch);
}
}
}
我通过网络加载的Ninepatch是使用aapt:
编译的aapt.exe c -v -S in -C out
正确下载Ninepatch并调用onPostExecute(),我也从Bitmap获得了chunck,并且我能够创建NinePatchDrawable,但在将其设置为ImageView后,Bitmap不会规模。 我做错了什么?
提前致谢 丹尼斯