📅  最后修改于: 2023-12-03 14:52:12.923000             🧑  作者: Mango
在 Android 中,我们通常使用矢量图形来展示图形。但是有时候我们需要将矢量图转换为位图。那么,如何在 Android 中将矢量转换为位图呢?下面,本文将介绍两种方法。
首先,在 res 目录下创建 drawable 目录,并在其中添加 vector 图片,例如 my_vector.xml。
在代码中获取 my_vector.xml 对应的 Drawable 对象:
Drawable vectorDrawable = getResources().getDrawable(R.drawable.my_vector);
Bitmap bitmap = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(),
vectorDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
vectorDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
vectorDrawable.draw(canvas);
在 res 目录下创建 drawable 目录,并在其中添加 vector 图片,例如 my_vector.xml。
在代码中获取 my_vector.xml 对应的 Drawable 对象:
Drawable vectorDrawable = getResources().getDrawable(R.drawable.my_vector);
Picture picture = new Picture();
Canvas canvas = picture.beginRecording(vectorDrawable.getIntrinsicWidth(),
vectorDrawable.getIntrinsicHeight());
vectorDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
vectorDrawable.draw(canvas);
picture.endRecording();
PictureDrawable pictureDrawable = new PictureDrawable(picture);
Bitmap bitmap = Bitmap.createBitmap(pictureDrawable.getIntrinsicWidth(),
pictureDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
pictureDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
pictureDrawable.draw(canvas);
以上就是两种在 Android 中将矢量转换为位图的方法。请根据实际需求选择适合的方式。