2009-09-24 62 views
10

我通過擴展ImageView來創建自定義圖像視圖,只是在屏幕上繪製了一些文本,但是我沒有在仿真器屏幕上看到任何內容,但日誌消息和printlns打印在日誌控制檯中。我沒做什麼?創建自定義ImageView

這是我的活動

public class HelloAndroidActivity extends Activity 
{ 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     //  setContentView(R.layout.main); 
     CustomImageView myView = new CustomImageView(getApplicationContext()); 
     System.out.println("Setting the view"); 
     myView.invalidate(); 
     setContentView(myView); 
     System.out.println("Calling invalidate"); 
    } 
} 

這是我CustomImageView

public class CustomImageView extends ImageView 
{ 

    /** 
    * @param context 
    */ 
    public CustomImageView(Context context) 
    { 
     super(context); 
     // TODO Auto-generated constructor stub 
     setBackgroundColor(0xFFFFFF); 
    } 

    /** 
    * @param context 
    * @param attrs 
    */ 
    public CustomImageView(Context context, AttributeSet attrs) 
    { 
     super(context, attrs); 
     // TODO Auto-generated constructor stub 
    } 

    /** 
    * @param context 
    * @param attrs 
    * @param defStyle 
    */ 
    public CustomImageView(Context context, AttributeSet attrs, int defStyle) 
    { 
     super(context, attrs, defStyle); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    protected void onDraw(Canvas canvas) 
    { 
     // TODO Auto-generated method stub 
       super.onDraw(canvas); 
     System.out.println("Painting content"); 
     Paint paint = new Paint(Paint.LINEAR_TEXT_FLAG); 
     paint.setColor(0x0); 
     paint.setTextSize(12.0F); 
     System.out.println("Drawing text"); 
     canvas.drawText("Hello World in custom view", 100, 100, paint); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event) 
    { 
     // TODO Auto-generated method stub 
     Log.d("Hello Android", "Got a touch event: " + event.getAction()); 
     return super.onTouchEvent(event); 

    } 
} 

即使在的onTouchEvent日誌消息()獲取打印,但沒有什麼是畫。

這是我main.xml中具有佈局

<?xml version="1.0" encoding="utf-8"?> 

<AbsoluteLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/AbsoluteLayout"> 
</AbsoluteLayout> 

回答

3

使用顏色值Color.WHITEColor.BLACK,而不是六值。

+0

不,它不起作用 – Ram 2009-09-24 12:02:25

+0

@Ram - 唯一的問題是顏色值。我們應該使用Color類生成顏色值。 – bhatt4982 2009-09-24 12:05:59

+2

或使用格式爲0xAARRGGBB的顏色十六進制值。 白= 0xFFFFFFFF和黑= 0xFF000000 – bhatt4982 2009-09-24 13:05:51

1

您是否檢查過您的畫布尺寸?圖像視圖期望位圖/可繪製返回其大小並基於scaletype標誌確定視圖的大小。我沒有看到代碼中的任何內容決定了佈局需求的視圖大小。

-Rick