小编Cos*_*syn的帖子

创建带阴影的文本位图

我想创建一个带阴影的文本位图,但我无法得到好的结果。问题是,当我直接绘制文本时,它看起来不错,但是当我将文本绘制到位图,然后绘制位图时,它看起来很丑陋。

代码:

public class MyView extends View {
    private Paint paint;
    private Bitmap bitmap;

    public MyView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public void init(){
        paint = new Paint();
        paint.setColor(Color.BLACK);
        paint.setTextSize(50);
        paint.setAntiAlias(true);
        paint.setTypeface(Typeface.create("HELVETICA", Typeface.NORMAL));
        paint.setShadowLayer(30, 0, 0, Color.BLACK);

        bitmap = Bitmap.createBitmap(500, 300, Bitmap.Config.ARGB_8888); 
        Canvas canvas2 = new Canvas(bitmap);
        canvas2.drawText("Dec Use", 100, 100, paint);
    }

    @Override
    protected void onDraw(Canvas canvas){
        super.onDraw(canvas);

        final boolean useBitmap = true;
        if(useBitmap){
            canvas.drawBitmap(bitmap, 0, 0, null);
        }
        else{
            canvas.drawText("Dec Use", 100, 100, paint);
        } …
Run Code Online (Sandbox Code Playgroud)

android text bitmap shadow draw

6
推荐指数
1
解决办法
2267
查看次数

带参考参数的重载函数模板

template <typename T> void f(T&) {}
template <typename T> void f(T&&) {}
int main()
{
    int x;
    f(x);   //ambiguous
}
Run Code Online (Sandbox Code Playgroud)

为什么这个电话不明确?第一个模板特化是f <int>(int&),第二个是f <int&>(int&).由于参数相同,因此根据偏序规则更加特殊的函数模板更好.然后根据标准14.8.2.4/9

如果对于给定类型,推导在两个方向上都成功(即,在上面的转换之后类型是相同的)并且P和A都是引用类型(在被上面提到的类型替换之前):
- 如果类型来自参数模板是一个左值引用,而参数模板中的类型不是,参数类型被认为比另一个更专业; ...

第一个模板有T&,第二个模板有T &&,所以第一个应该更专业.这有什么不对?


编辑:此代码在g ++ 4.6.1和VC++ 2010 Express中测试,两者都给出了模糊错误.

c++ templates overloading c++11

4
推荐指数
1
解决办法
783
查看次数

标签 统计

android ×1

bitmap ×1

c++ ×1

c++11 ×1

draw ×1

overloading ×1

shadow ×1

templates ×1

text ×1