2014-10-20 106 views
1

我是Android編程的新手,我有一些關於繪圖的基本問題。在活動內繪製多個視圖

我有一個活動,通過.xml文件顯示一個TextView,它看起來像這樣:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 


    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="New Text" 
     android:id="@+id/textView" 
     android:textSize="18dp" 
     android:textStyle="bold" /> 

</RelativeLayout> 

我想顯示我的活動裏面幾個矩形。爲此,我創建了一個擴展View的新類。我實例化了這個類,並設法在我的Activity中顯示我的矩形(也許我應該在這裏使用word佈局,我不確定...)。

我創建的類:

public class DrawRectangle extends View { 
    Paint paint = new Paint(); 
    int x,y; 
    int length,width; 

    public DrawRectangle(Context context,int _x,int _y, int _length, int _width){ 
     super(context); 
     x = _x; 
     y = _y; 
     length = _length; 
     width = _width; 

    } 

    @Override 
    public void onDraw(Canvas canvas) { 
     paint.setColor(Color.BLACK); 
     paint.setStrokeWidth(3); 
     canvas.drawRect(x, y, x+length, y+length, paint); 
    } 
} 

而且創造DrawRectangle的類的實例的活動裏面的功能:

public void drawRectangle(){ 

    DrawRectangle rectangle = new DrawRectangle(this,100,100,50,50); 
    // rectangle.setBackgroundColor(Color.TRANSPARENT); 
    setContentView(rectangle); 
} 

事情是這樣的:

  • 矩形已被正確繪製
  • 我們看不到textview了

我試圖創建DrawRectangle類的另一個實例,只有一個可以看到(最後一個在屏幕上設置)。我認爲這個問題來自這個事實,即這個觀點佔據了所有的位置,並且放在了所有事物的前面。於是,我就背景顏色改變爲透明使用線路:

rectangle.setBackgroundColor(Color.TRANSPARENT); 

rectangle.setBackgroundColor(Color.parseColor("#00000000"); 

有沒有任何錯誤,但其他矩形或文本視圖是看不見的。

我該怎麼辦?我懷疑這是一個錯誤的理解。

謝謝你們!

回答

1

setContentView您必須傳遞活動的xml佈局(包含TextView)。 稍後,您可以將其他視圖添加到此佈局。例如:

ViewGroup layout = (ViewGroup) findViewById(R.id.your_layout_id); 
TextView tv = new TextView(this); 
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
tv.setText("Added tv"); 
layout.addView(tv); 
+0

Thx for answering。我怎樣才能知道我的佈局ID?關於findViewByID(R.id.your_layout_id)。 – Xema 2014-10-20 21:21:21

+0

這是佈局xml文件的名稱。 – JoaoBiriba 2014-10-20 21:44:15

+0

我的佈局沒有任何ID,所以這就是爲什麼我有點迷路。現在它工作了!謝謝 ! – Xema 2014-10-21 20:04:41