Android:不能将BitmapDrawable转换为ClipDrawable



我正在尝试使用Android Jellybean (SDK 18)实现一个简单的ClipDrawable。我不明白为什么我得到的转换错误ImageView.getDrawable()当它返回一个Drawable,而不是BitmapDrawable

下面是我在一个活动的onCreate()中的相关代码:

    ImageView image = (ImageView) findViewById(R.id.guage_one);
    ClipDrawable drawable = (ClipDrawable) image.getDrawable();
    drawable.setLevel(10000);

为什么我会得到一个ClassCastException ?我知道BitmapDrawable和ClipDrawable是Drawable的子类所以你不能将它们相互转换,我知道。但是为什么image.getDrawable()返回BitmapDrawable而不仅仅是drawable呢?我在文档中遗漏了什么吗?

ClipDrawable不继承BitmapDrawable。

是它的继承树:

. lang。对象

android.graphics.drawable.DrawableWrapper

要将BitmapDrawable转换为ClipDrawable,可以执行以下操作:

ImageView image = (ImageView) findViewById(R.id.guage_one);
ClipDrawable clipDrawable = new ClipDrawable(image.getDrawable(), Gravity.LEFT, ClipDrawable.HORIZONTAL);

相关内容

  • 没有找到相关文章

最新更新