我正在嘗試在我的EditText
中實現自定義onDraw()
方法。 onDraw
正在調用 - 我可以看到日誌消息,但它沒有繪製任何東西。自定義Android EditText不能正常工作
任何人都可以告訴我我做錯了什麼?
這裏是我的佈局的摘錄:
<view xmlns:android="http://schemas.android.com/apk/res/android"
class ="my.package.NotePadEditView"
android:inputType="textMultiLine"
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:background="@android:color/transparent"
android:singleLine="false"
>
<requestFocus/>
</view>
</ScrollView>
這裏是類(只是一些測試代碼現在):
public class NotePadEditView extends EditText {
Paint paint = new Paint();
public NotePadEditView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(3);
paint.setColor(0xFF0000);
}
@Override
protected void onDraw(Canvas canvas) {
Log.d("NotePadEditView", "Calling onDraw()"); // These log messages are displaying
canvas.drawLine(0, 0, 50, 50, paint); // just some random stuff so we know when we are done. (Note: these are not displaying - what's up with that???)
canvas.drawText("Hello, World", 30, 30, paint);
super.onDraw(canvas);
}
// more constructors, etc
嘗試先調用'super.onDraw(canvas);'。也許這是繪製在你的'drawLine()'和'drawText()'之上的。 – Macarse 2012-04-11 04:12:04
我試過 - 事實上,我把整個繪圖的東西放在一個方法中,並在super.onDraw之前和之後調用它 - 瘋狂的複雜! – 2012-04-11 10:17:50