Merge "Remove needlessly thrown IOException." into lmp-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f305d2c4a8
@ -141,7 +141,6 @@ public final class Bitmap_Delegate {
|
|||||||
* Creates and returns a {@link Bitmap} initialized with the given stream content.
|
* Creates and returns a {@link Bitmap} initialized with the given stream content.
|
||||||
*
|
*
|
||||||
* @param input the stream from which to read the bitmap content
|
* @param input the stream from which to read the bitmap content
|
||||||
* @param createFlags
|
|
||||||
* @param density the density associated with the bitmap
|
* @param density the density associated with the bitmap
|
||||||
*
|
*
|
||||||
* @see Bitmap#isPremultiplied()
|
* @see Bitmap#isPremultiplied()
|
||||||
@ -166,8 +165,7 @@ public final class Bitmap_Delegate {
|
|||||||
* @see Bitmap#isMutable()
|
* @see Bitmap#isMutable()
|
||||||
* @see Bitmap#getDensity()
|
* @see Bitmap#getDensity()
|
||||||
*/
|
*/
|
||||||
public static Bitmap createBitmap(BufferedImage image, boolean isMutable,
|
public static Bitmap createBitmap(BufferedImage image, boolean isMutable, Density density) {
|
||||||
Density density) throws IOException {
|
|
||||||
return createBitmap(image, getPremultipliedBitmapCreateFlags(isMutable), density);
|
return createBitmap(image, getPremultipliedBitmapCreateFlags(isMutable), density);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -175,7 +173,6 @@ public final class Bitmap_Delegate {
|
|||||||
* Creates and returns a {@link Bitmap} initialized with the given {@link BufferedImage}
|
* Creates and returns a {@link Bitmap} initialized with the given {@link BufferedImage}
|
||||||
*
|
*
|
||||||
* @param image the bitmap content
|
* @param image the bitmap content
|
||||||
* @param createFlags
|
|
||||||
* @param density the density associated with the bitmap
|
* @param density the density associated with the bitmap
|
||||||
*
|
*
|
||||||
* @see Bitmap#isPremultiplied()
|
* @see Bitmap#isPremultiplied()
|
||||||
@ -183,7 +180,7 @@ public final class Bitmap_Delegate {
|
|||||||
* @see Bitmap#getDensity()
|
* @see Bitmap#getDensity()
|
||||||
*/
|
*/
|
||||||
public static Bitmap createBitmap(BufferedImage image, Set<BitmapCreateFlags> createFlags,
|
public static Bitmap createBitmap(BufferedImage image, Set<BitmapCreateFlags> createFlags,
|
||||||
Density density) throws IOException {
|
Density density) {
|
||||||
// create a delegate with the given image.
|
// create a delegate with the given image.
|
||||||
Bitmap_Delegate delegate = new Bitmap_Delegate(image, Config.ARGB_8888);
|
Bitmap_Delegate delegate = new Bitmap_Delegate(image, Config.ARGB_8888);
|
||||||
|
|
||||||
|
@ -57,63 +57,59 @@ public class RenderDrawable extends RenderAction<DrawableParams> {
|
|||||||
|
|
||||||
public Result render() {
|
public Result render() {
|
||||||
checkLock();
|
checkLock();
|
||||||
try {
|
// get the drawable resource value
|
||||||
// get the drawable resource value
|
DrawableParams params = getParams();
|
||||||
DrawableParams params = getParams();
|
HardwareConfig hardwareConfig = params.getHardwareConfig();
|
||||||
HardwareConfig hardwareConfig = params.getHardwareConfig();
|
ResourceValue drawableResource = params.getDrawable();
|
||||||
ResourceValue drawableResource = params.getDrawable();
|
|
||||||
|
|
||||||
// resolve it
|
// resolve it
|
||||||
BridgeContext context = getContext();
|
BridgeContext context = getContext();
|
||||||
drawableResource = context.getRenderResources().resolveResValue(drawableResource);
|
drawableResource = context.getRenderResources().resolveResValue(drawableResource);
|
||||||
|
|
||||||
if (drawableResource == null ||
|
if (drawableResource == null ||
|
||||||
drawableResource.getResourceType() != ResourceType.DRAWABLE) {
|
drawableResource.getResourceType() != ResourceType.DRAWABLE) {
|
||||||
return Status.ERROR_NOT_A_DRAWABLE.createResult();
|
return Status.ERROR_NOT_A_DRAWABLE.createResult();
|
||||||
}
|
|
||||||
|
|
||||||
// create a simple FrameLayout
|
|
||||||
FrameLayout content = new FrameLayout(context);
|
|
||||||
|
|
||||||
// get the actual Drawable object to draw
|
|
||||||
Drawable d = ResourceHelper.getDrawable(drawableResource, context);
|
|
||||||
content.setBackground(d);
|
|
||||||
|
|
||||||
// set the AttachInfo on the root view.
|
|
||||||
AttachInfo_Accessor.setAttachInfo(content);
|
|
||||||
|
|
||||||
|
|
||||||
// measure
|
|
||||||
int w = hardwareConfig.getScreenWidth();
|
|
||||||
int h = hardwareConfig.getScreenHeight();
|
|
||||||
int w_spec = MeasureSpec.makeMeasureSpec(w, MeasureSpec.EXACTLY);
|
|
||||||
int h_spec = MeasureSpec.makeMeasureSpec(h, MeasureSpec.EXACTLY);
|
|
||||||
content.measure(w_spec, h_spec);
|
|
||||||
|
|
||||||
// now do the layout.
|
|
||||||
content.layout(0, 0, w, h);
|
|
||||||
|
|
||||||
// preDraw setup
|
|
||||||
AttachInfo_Accessor.dispatchOnPreDraw(content);
|
|
||||||
|
|
||||||
// draw into a new image
|
|
||||||
BufferedImage image = getImage(w, h);
|
|
||||||
|
|
||||||
// create an Android bitmap around the BufferedImage
|
|
||||||
Bitmap bitmap = Bitmap_Delegate.createBitmap(image,
|
|
||||||
true /*isMutable*/, hardwareConfig.getDensity());
|
|
||||||
|
|
||||||
// create a Canvas around the Android bitmap
|
|
||||||
Canvas canvas = new Canvas(bitmap);
|
|
||||||
canvas.setDensity(hardwareConfig.getDensity().getDpiValue());
|
|
||||||
|
|
||||||
// and draw
|
|
||||||
content.draw(canvas);
|
|
||||||
|
|
||||||
return Status.SUCCESS.createResult(image);
|
|
||||||
} catch (IOException e) {
|
|
||||||
return ERROR_UNKNOWN.createResult(e.getMessage(), e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// create a simple FrameLayout
|
||||||
|
FrameLayout content = new FrameLayout(context);
|
||||||
|
|
||||||
|
// get the actual Drawable object to draw
|
||||||
|
Drawable d = ResourceHelper.getDrawable(drawableResource, context);
|
||||||
|
content.setBackground(d);
|
||||||
|
|
||||||
|
// set the AttachInfo on the root view.
|
||||||
|
AttachInfo_Accessor.setAttachInfo(content);
|
||||||
|
|
||||||
|
|
||||||
|
// measure
|
||||||
|
int w = hardwareConfig.getScreenWidth();
|
||||||
|
int h = hardwareConfig.getScreenHeight();
|
||||||
|
int w_spec = MeasureSpec.makeMeasureSpec(w, MeasureSpec.EXACTLY);
|
||||||
|
int h_spec = MeasureSpec.makeMeasureSpec(h, MeasureSpec.EXACTLY);
|
||||||
|
content.measure(w_spec, h_spec);
|
||||||
|
|
||||||
|
// now do the layout.
|
||||||
|
content.layout(0, 0, w, h);
|
||||||
|
|
||||||
|
// preDraw setup
|
||||||
|
AttachInfo_Accessor.dispatchOnPreDraw(content);
|
||||||
|
|
||||||
|
// draw into a new image
|
||||||
|
BufferedImage image = getImage(w, h);
|
||||||
|
|
||||||
|
// create an Android bitmap around the BufferedImage
|
||||||
|
Bitmap bitmap = Bitmap_Delegate.createBitmap(image,
|
||||||
|
true /*isMutable*/, hardwareConfig.getDensity());
|
||||||
|
|
||||||
|
// create a Canvas around the Android bitmap
|
||||||
|
Canvas canvas = new Canvas(bitmap);
|
||||||
|
canvas.setDensity(hardwareConfig.getDensity().getDpiValue());
|
||||||
|
|
||||||
|
// and draw
|
||||||
|
content.draw(canvas);
|
||||||
|
|
||||||
|
return Status.SUCCESS.createResult(image);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected BufferedImage getImage(int w, int h) {
|
protected BufferedImage getImage(int w, int h) {
|
||||||
|
Reference in New Issue
Block a user