我有自定义EditText:
public class MyEditText extends AppCompatEditText {
public MyEditText(Context context) {
super(context);
}
public MyEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int width = getMeasuredWidth();
int height = getMeasuredHeight();
canvas.drawCircle(width / 2, height / 2, Math.min(width, height) / 2, getPaint());
}
}
xml中的:
<com.angcyo.myapplication.MyEditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"/>
正常效果:
但如果您同时设置
android:gravity="right" android:inputType="text"
<com.angcyo.myapplication.MyEditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:gravity="right"
android:inputType="text"/>
嗯,结果是......
发生什么事了?不画任何东西?
答案 0 :(得分:0)
尝试扩展EditText而不是AppCompatEditText。 然后将getmeasuredHeight()和getmeasuredWidth()更改为getHeight()和getWidth(),然后查看。
初始化Paint就像 Paint paint = new Paint(); paint.setColor(Color.BLACK); 并在第三个参数中将半径更改为50f或60f,然后查看。