2011-07-29 11 views
0

私はカスタムEditTextビューを作成しようとしています。これの機能は、私たちが入力するように、暗号化された文字列を画面上に表示します(***の代わりにパスワード表示に似ています、暗号化されたテキストを表示したい)。カスタムEditTextビューキャンバスへのビューの描画

私のonDraw()の中でcanvas.drawText()を使いたくありません。私は私のテキストを描画するためのTextViewを使用したい。(理由はここ

にカスタムビューの私のコードです。私は問題に直面しています、何も私のEditText内に表示されません。

public class MyEditText extends EditText { 

Context context = null; 
private TextView tv = null; 
LinearLayout ll = null; 

public TamilEditText(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
    init(context); 
} 

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

public TamilEditText(Context context) { 
    super(context); 
    this.context = context; 
    init(context); 
} 

private void init(Context context) { 
    LayoutInflater li = LayoutInflater.from(context); 
    ll = (LinearLayout) li.inflate(R.layout.txtlayout, null); 
    tv = (TextView) ll.findViewById(R.id.txt); 
} 

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

    tv.draw(canvas); 
    String str = encrypt(getText().toString()); 
    tv.setText(str); 
} 

private String encrypt(String str) { 
    return str; 
} 

}

答えて

0

これは、テレビが表示されていないので、幅と高さが0になるためです。 TextViewはテキストを測定して描画するため、おそらくこのクラスも変更してください。

+0

zenob、返信ありがとうございます。この問題の回避策は何ですか?私を助けてください。 tv(TextView)を見えるようにするには? – Niresh

関連する問題