将已过滤的drawable转换为位图

时间:2014-10-28 17:34:36

标签: java android drawable

我有一个drawable我正在应用过滤器来使用     drawable.setColorFilter(color,PorterDuff.MILTIPLY)

然后我拿着我用来创建drawable的位图并将它放到画布中,这样我就可以在png的中间写文本了。并通过写作完成

drawable.draw(canvas)

我希望我添加的文本总是白色,无论使用什么颜色过滤器,但现在文本变成用于过滤的颜色。我在想是否可以将过滤后的drawable转换为位图,然后添加文本,但它到目前为止还没有。任何帮助或建议将不胜感激。

这是我的代码

    public void setDrawableFilter(String text, int color) {

        mBitmap = scaleBitmap(250, 238);
        mDrawable = new BitmapDrawable(mContext.getResources(), mBitmap);
        mDrawable.setColorFilter(color, PorterDuff.Mode.MULTIPLY);

       addTextToBitmap(text);
}

public void addTextToBitmap(String text){
    Canvas canvas = new Canvas(mBitmap);
    mDrawable.draw(canvas);
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    paint.setTextSize(35);

    paint.setColor(Color.WHITE);

    int canvasWidth = canvas.getWidth();
    int canvasHeight = canvas.getHeight();

    float xPercent = 0.38f;
    float yPercent = 0.58f;
    int textX = (int) (canvasWidth * xPercent);//
    int textY = (int) (canvasHeight * yPercent);

    paint.setTextAlign(Paint.Align.CENTER);
    canvas.drawText(text, canvasWidth / 2, textY, paint);
}

0 个答案:

没有答案