我正在尝试创建自定义的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)
这不会起作用,因为电视没有附加到视图hierarych所以它的宽度和高度为0。 TextView使用特殊类(Layout)。测量和绘制文本,所以你可能还需要修改这个类。