【发布时间】:2014-06-24 16:29:28
【问题描述】:
我有一个 ActionBar 图标(左侧的主图标,不是操作项),我想制作动画。
我正在我的Activity 中设置我的ActionBar 的图标,如下所示:
getSupportActionBar().setIcon(icon)
其中icon 是由将自定义XML 视图转换为位图的库生成的Drawable。这个 XML 视图是一个带有背景图像的 RelativeLayout 和顶部的 TextView。
今天,当我必须更新TextView 时,我只需重新生成icon 并再次调用setIcon。相反,我想持有我的TextView 并对其应用一些动画效果,例如淡出然后在更新后淡入(也许永远不必调用setIcon,只需重复使用相同的一)。
不知道该怎么做。有人可以推荐一种方法吗?
编辑:尝试这种方法:
在MyActivity:
Drawable myDrawable = new MyDrawable();
supportActionBar.setIcon(myDrawable);
和:
public class MyDrawable extends Drawable {
private Paint paint;
private RectF rect;
public MyDrawable() {
this.paint = new Paint();
this.rect = new RectF();
}
@Override
public void draw(Canvas canvas) {
paint.setARGB(255, 0, 255, 0);
paint.setStrokeWidth(2);
paint.setStyle(Paint.Style.FILL);
rect.right = 20f;
rect.bottom = 20f;
canvas.drawRoundRect(rect, 0.5f, 0.5f, paint);
}
@Override
public void setAlpha(int alpha) {
paint.setAlpha(alpha);
}
@Override
public void setColorFilter(ColorFilter cf) {
paint.setColorFilter(cf);
}
@Override
public int getOpacity() {
return PixelFormat.OPAQUE;
}
}
什么都没有出现。我确认onDraw 被调用。让我怀疑的是canvas 的高度和宽度都设置为 1。
【问题讨论】:
标签: android actionbarsherlock android-drawable