2012-04-28 67 views
0

好吧,我知道我可以通過textview.setBackgroundColor(R.color.darkgrey)或其他顏色,但在即時略有不同的情況設置一個TextView的背景色。我有一個有三個屬性的對象名稱,值和繪畫。我用這個對象繪製了一個餅圖,並且爲圖形制作了一堆文本視圖。我現在要做的就是將背景顏色設置爲用於圖形的Paint。我使用android.graphics.Paint的setARGB方法設置了Paint。我已經通過Android筆記試圖找到一種轉換方法來將Paint更改爲顏色,但沒有運氣。如何setBackgroundColor TextView中的一種塗料,而不是一個顏色?

任何想法如何setBackgroundColor()進行使用畫圖一個TextView?

+0

爲什麼不簡單地在對象中保存ARGB值以及名稱,值和'Paint'? – CommonsWare 2012-04-28 15:42:03

+0

啊畫圖ARGB值由對象持有,但它只是即時得到一個錯誤「在類型視圖的方法setBackgroundColor(INT)不適用於參數(油漆)」當我嘗試設置TextView的背景是油漆 – ariken929 2012-04-28 15:46:52

+0

ARGB值是一個整數。讓你的對象擁有一個名字,一個值,一個'Paint'和一個整數。將ARGB值放入整數中。在'setBackgroundColor()'中使用整數。 – CommonsWare 2012-04-28 16:16:18

回答

0

如果你想繪製的帆布你的文字,你應該做這樣的事情:

public Bitmap myDrawText(Context context, String text, Typeface typeface, int textSize, int width, int height) { 
    Bitmap myBitmap = Bitmap.createBitmap(width, height,  Bitmap.Config.ARGB_8888); 
    Canvas myCanvas = new Canvas(myBitmap); 
    Paint paint = new Paint(); 
    paint.setAntiAlias(true); 
    paint.setSubpixelText(true); 
    paint.setTypeface(typeface); 
    paint.setStyle(Paint.Style.FILL); 
    paint.setColor(Color.WHITE); 
    paint.setTextSize(textSize); 
    paint.setTextAlign(Align.CENTER); 
    myCanvas.drawText(text, (width/2), 40, paint); 
    return myBitmap; 
} 

現在你有你的文字的位圖!

ImageView iv = findViewById(R.id.some_image); 
    iv.setImageBitmap(myBitmap); 
+0

嗨感謝您的答覆,我不是actaully繪製文本,即時繪製圖形和文本是在ListView只是正常textviews。我添加了一個PIC顯示 – ariken929 2012-04-28 15:58:31

+0

代替文本視圖使用圖像視圖,並用此功能繪製的文本。 – 2012-04-28 16:04:16

+0

好的。但是有沒有更簡單的方法將Paint轉換爲彩色?因爲如果我必須使用圖像視圖,我將不得不更改iive爲列表所做的自定義arrayadapter .. – ariken929 2012-04-28 16:06:47

相關問題