android:从web加载svg文件,并在图像视图中显示

前端之家收集整理的这篇文章主要介绍了android:从web加载svg文件,并在图像视图中显示前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想从web加载svg文件,并在imageView上显示文件,对于普通的png或其他图像文件,我使用 Picasso
是否可以使用此库进行svg文件?还有什么办法从web加载svg文件并在图像视图上显示?我使用 svg-android显示svg文件,但我不知道如何从web获取svg图像所有示例使用本地文件.

解决方法

请参考 Having issue on Real Device using vector image in android. SVG-android

用户发帖他询问一个类似的问题,并建议他使用:

在布局文件中为ImageView创建一个成员变量;

private ImageView mImageView;

// intialize in onCreate(Bundle savedInstanceState)
mImageView = (ImageView) findViewById(R.id.image_view);

下载图片

private class HttpImageRequestTask extends AsyncTask<Void,Void,Drawable> {
    @Override
    protected Drawable doInBackground(Void... params) {
        try {


            final URL url = new URL("http://upload.wikimedia.org/wikipedia/commons/e/e8/Svg_example3.svg");
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
            InputStream inputStream = urlConnection.getInputStream();
            SVG svg = SVGParser. getSVGFromInputStream(inputStream);
            Drawable drawable = svg.createPictureDrawable();
            return drawable;
        } catch (Exception e) {
            Log.e("MainActivity",e.getMessage(),e);
        }

        return null;
    }

    @Override
    protected void onPostExecute(Drawable drawable) {
        // Update the view
        updateImageView(drawable);
    }
}

然后将drawable应用于Imageview

@SuppressLint("NewApi")
private void updateImageView(Drawable drawable){
    if(drawable != null){

        // Try using your library and adding this layer type before switching your SVG parsing
        mImageView.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
        mImageView.setImageDrawable(drawable);
    }
}

SVGParser可在https://github.com/pents90/svg-android

猜你在找的Android相关文章