2013-07-31 25 views
1

在位圖上繪製時,我想旋轉180度文本。位圖本身也可以旋轉,因爲除文本之外沒有任何東西被繪製。我不清楚在下面的代碼中我應該使用什麼來旋轉文本:ImageView,canvas,paint,bitmap ???在位圖上繪製時旋轉文本

ImageView ivImage = (ImageView)findViewById(R.id.ivImage); 

    DisplayMetrics metrics = getResources().getDisplayMetrics(); 
    int width = metrics.widthPixels; 
    int height = metrics.heightPixels; 

    Bitmap.Config conf = Bitmap.Config.ARGB_8888; 
    Bitmap bitmap = Bitmap.createBitmap(width, height, conf); 

    Canvas canvas = new Canvas(bitmap); 
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 
    paint.setColor(Color.RED); 
    paint.setTextSize((int) (200 * 1)); 

    // draw text to the Canvas center 
    Rect bounds = new Rect(); 
    paint.setTextAlign(Align.CENTER); 

    String text = "HELP"; 

    paint.getTextBounds(text, 0, text.length(), bounds); 
    int x = bitmap.getWidth()/2; // (bitmap.getWidth() - bounds.width())/2; 
    int y = bitmap.getHeight()/2; // (bitmap.getHeight() + bounds.height())/2; 

    canvas.drawText(text, x * 1, y * 1, paint); 

    ivImage.setImageBitmap(bitmap); 

回答

3

我希望這可以幫助。這是我創建時鐘時的方式

// Save canvas in current state 
canvas.save(); 

// Rotate canvas around center and draw 
canvas.rotate(degrees, canvasWidth/2, canvasHeigth/2); 
canvas.drawText(text, x, y, paint) 

// Restore canvas, rotates it back to original 
canvas.restore();