在运行时创建Ninepatch

时间:2014-04-22 15:31:53

标签: android networking bitmap nine-patch

我想通过网络下载已编译的Ninepatch文件并将其设置为ImageView。 我已经找到了以下解决方案:LinkLink

我的代码是:

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不会规模。 我做错了什么?

提前致谢 丹尼斯

0 个答案:

没有答案
相关问题