第一个问题是Notification(..)构造函数只获取资源ID,而不是drawable。我需要在通知中显示一些小(动态)图形。 不久之前,我能够实现自定义View,只需扩展View类,并实现onDraw()方法。视图完美运行(我在xml布局文件中使用完整的类名称)。我决定(通过类比),我可以构建自己的Drawable类并在xml文件中声明它,但这不起作用。这是我的绘画:
public class TestDrawable extends Drawable {
public TestDrawable() {
this.setBounds(0, 0, this.getIntrinsicWidth(), this.getIntrinsicHeight());
}
@Override
public int getIntrinsicWidth() {
return 36;
}
@Override
public int getIntrinsicHeight() {
return 36;
}
@Override
public void draw(Canvas canvas) {
Paint paint = new Paint();
paint.setStrokeWidth(2);
paint.setColor(Color.BLUE);
canvas.drawCircle(8, 8, 3, paint);
}
@Override
public void setAlpha(int alpha) {
}
@Override
public void setColorFilter(ColorFilter cf) {
}
@Override
public int getOpacity() {
return PixelFormat.OPAQUE;
}
}
我检查了很多xml可绘制文件,构造函数和方法组合的变体。但是,draw()方法甚至没有调用:(。我测试了这个drawable作为应用程序图标。其他drawables,因为形状或图像照常工作。
答案 0 :(得分:0)
视图效果很好(我在xml布局文件中使用完整的类名称)。
也许是为了你自己的活动。您无法在任何View
环境中使用自定义RemoteViews
课程。
我决定(通过类比),我可以构建自己的Drawable类并在xml文件中声明它,但这不起作用。
你能不能无所谓。操作系统进程显示Notification
。操作系统进程没有您的自定义Drawable
类。因此,操作系统进程不能使用任何取决于您的自定义Drawable
类的内容。
AFAIK,通常无法创建新的可绘制资源类型。