2016-08-02 7 views
0

私はキャンバスにレンダリングされるTextViewをプログラムで作成しています。これを行うための私のコードは次のとおりです。プログラムで作成したテキストでテキストを垂直方向に揃えられないTextView

TextView textView = new TextView(context); 
textView.layout(0, 0, 140, 180); 
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); 
textView.setGravity(Gravity.CENTER_VERTICAL); 
textView.setBackgroundColor(Color.GREEN); 
textView.setTextColor(Color.BLACK); 
textView.setText("ABC"); 
textView.setDrawingCacheEnabled(true); 

canvas.drawBitmap(textView.getDrawingCache(), scaledX, scaledY, null); 

しかし、垂直方向には整列しません。私はそれをGravity.BOTTOMと揃えようとしましたが、結果はありません。テキストを横方向に整列させると問題はありません。

答えて

0

TextViewの高さを設定する必要があるかもしれません。 TextViewの高さを設定しないと、wrapContentの高さを持つ可能性があるため、center_verticalは影響を与えません。以下は

textView.setLayoutParams(new ViewGroup.LayoutParams(
    ViewGroup.LayoutParams.MATCH_PARENT, 
    ViewGroup.LayoutParams.MATCH_PARENT)); 
+0

べきではありません(それは垂直方向の中央にスペースを持っているように、それは、テキストのフォントの高さよりも高くなるようにするために十分なスペースがありますことを確認してください)MatchParentまでの高さを設定する簡単な例であります高さはtextView.layout(0、0、140、180)で設定しますか?そこに緑色の背景が置かれているので、その高さはテキストの高さの約3倍です。 layoutParamsを設定しようとしましたが、何の違いもありませんでした。 –

+0

textView.layout(0、0、500、500)に変更しようとしましたが、影響はありません。それは私が信じる幅と高さを設定する方法ではありません。 LayoutParamで設定する必要があります。 – Elye

関連する問題