You've already forked android_translation_layer
mirror of
https://gitlab.com/android_translation_layer/android_translation_layer.git
synced 2025-10-27 11:48:10 -07:00
support loading BitmapDrawables from XML
This commit is contained in:
@@ -1,15 +1,28 @@
|
|||||||
package android.graphics.drawable;
|
package android.graphics.drawable;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import org.xmlpull.v1.XmlPullParser;
|
||||||
|
import org.xmlpull.v1.XmlPullParserException;
|
||||||
|
|
||||||
|
import com.android.internal.R;
|
||||||
|
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
|
import android.content.res.Resources.Theme;
|
||||||
|
import android.content.res.TypedArray;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.graphics.RectF;
|
import android.graphics.RectF;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
|
||||||
public class BitmapDrawable extends Drawable {
|
public class BitmapDrawable extends Drawable {
|
||||||
|
|
||||||
private Bitmap bitmap;
|
private Bitmap bitmap;
|
||||||
|
|
||||||
|
public BitmapDrawable() {
|
||||||
|
}
|
||||||
|
|
||||||
public BitmapDrawable(Resources res, Bitmap bitmap) {
|
public BitmapDrawable(Resources res, Bitmap bitmap) {
|
||||||
this.bitmap = bitmap;
|
this.bitmap = bitmap;
|
||||||
}
|
}
|
||||||
@@ -23,4 +36,13 @@ public class BitmapDrawable extends Drawable {
|
|||||||
return bitmap;
|
return bitmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Theme theme)
|
||||||
|
throws XmlPullParserException, IOException {
|
||||||
|
final TypedArray a = r.obtainAttributes(attrs, R.styleable.BitmapDrawable);
|
||||||
|
if (a.hasValue(R.styleable.BitmapDrawable_src)) {
|
||||||
|
paintable = a.getDrawable(R.styleable.BitmapDrawable_src).paintable;
|
||||||
|
}
|
||||||
|
a.recycle();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,6 +123,10 @@ public class Drawable {
|
|||||||
return drawable;
|
return drawable;
|
||||||
} else if ("shape".equals(parser.getName())) {
|
} else if ("shape".equals(parser.getName())) {
|
||||||
return new GradientDrawable();
|
return new GradientDrawable();
|
||||||
|
} else if ("bitmap".equals(parser.getName())) {
|
||||||
|
BitmapDrawable drawable = new BitmapDrawable();
|
||||||
|
drawable.inflate(resources, parser, parser, null);
|
||||||
|
return drawable;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user