将drawable转换为位图给我一个错误

时间:2016-06-17 22:35:19

标签: android bitmap android-context

我想将一个drawable从一个对象转换为一个位图,但是当我尝试使用这个

    Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), 
    cardWriter.getCardImage());

它给了我错误的第二个参数期待' int'发现' drawable'但我读到的一切都说它应该是一个可绘制的。当我开始写cardWriter.getCardImage()时,android工作室代码完成说它是一个可绘制的, 这是我的CardWriters课程

  public CardWriter(Drawable cardImage, String cardEmotion, String 
  speechText)
{
    this.cardImage = cardImage;
    this.cardEmotion = cardEmotion;
    this.speechText = speechText;

} 

我认为这可能是我的背景错了,但我不知道它是如何只是一种方法,我也传递上下文,继承人的全部事情

 public void insertCardDetails(Context context, CardWriter cardWriter) {
    ContentValues cv = new ContentValues();
    Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), cardWriter.getCardImage());
    cv.put(CARD_PHOTO, Utility.getBytes(bitmap));
    cv.put(CARD_NAME, cardWriter.getCardEmotion());
    cv.put(CARD_SPEECH, cardWriter.getSpeechText());
    IconsDB.insert(EMPLOYEES_TABLE, null, cv);
}

我在做什么?

1 个答案:

答案 0 :(得分:2)

BitmapFactory.decodeResource期望第二个参数的可绘制ID。

你应该这样做:

Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.your_drawable_id);

或者如果你不知道id:

Bitmap bitmap = ((BitmapDrawable)cardWriter.getCardImage()).getBitmap;