2012-04-06 24 views
0

私はこのグラフィックス/キャンバスの全体のことについてかなり新しいです。私がしようとしているのは、キャンバスにいくつかのボタンの下に線が表示されていることだけです。私は何を間違えたのですか?ここに私のコードは次のとおりです。キャンバスが表示されないのはなぜですか(Android)?

public class Vectors extends Activity{ 

    VectorsView vectorsView; 
    LinearLayout l; 
    Canvas canvas; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.vectors); 
     vectorsView = new VectorsView(this); 

    } 

    public class VectorsView extends View{ 

     public VectorsView(Context context) { 
      super(context); 
     } 

     @Override 
     protected void onDraw(Canvas canvas) { 
      // TODO Auto-generated method stub 
      super.onDraw(canvas); 
      l = (LinearLayout) findViewById(R.layout.vectors); 


      Paint paint = new Paint(); 
      canvas = new Canvas(); 

      paint.setColor(Color.WHITE); 
      canvas.drawLine(0, 0, 100, 100, paint); 
      vectorsView.draw(canvas); 

      l.addView(vectorsView); 
      setContentView(l); 
     } 
    } 
} 

そしてここでは、要求されたvectors.xmlです:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent"> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="@drawable/background" 
     android:orientation="vertical"> 

     <ImageView android:layout_height="wrap_content" 
      android:src="@drawable/vectors" 
      android:layout_width="wrap_content" 
      android:layout_gravity="center" 
      android:paddingTop="5dp" 
      android:paddingBottom="5dp" 
      android:adjustViewBounds="true"> 
     </ImageView> 
     <LinearLayout android:layout_height="wrap_content" 
      android:layout_width="match_parent" 
      android:orientation="horizontal"> 
      <Button android:text="Choose Program" 
       android:id="@+id/bChsProgV" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="5dp" 
       android:layout_marginLeft="97dp" 
       android:adjustViewBounds="true"> 
      </Button> 
      <ImageButton android:layout_height="wrap_content" 
       android:src="@drawable/help" 
       android:id="@+id/ibHelpV" 
       android:layout_width="wrap_content" 
       android:layout_marginLeft="65dp" 
       android:background="@null" 
       android:layout_marginTop="10dp"> 
      </ImageButton> 
     </LinearLayout> 
     <LinearLayout android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 
      <TextView android:text="Value" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:paddingLeft="5dp" 
       android:paddingRight="5dp" 
       android:textColor="#fffafa"> 
      </TextView> 
      <EditText android:text="" 
       android:id="@+id/etValueV" 
       android:layout_height="wrap_content" 
       android:inputType="numberSigned|numberDecimal" 
       android:layout_width="100dp" > 
      </EditText> 
      <Button android:text="Next" 
       android:id="@+id/bNextV" 
       android:layout_width="65dp" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="10dp"> 
      </Button> 
      <TextView android:text="" 
       android:id="@+id/tvAnsValV" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"> 
      </TextView> 
     </LinearLayout> 
     <LinearLayout android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 
      <TextView android:text="Angle" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:paddingLeft="5dp" 
       android:paddingRight="5dp" 
       android:textColor="#fffafa"> 
      </TextView> 
      <EditText android:text="" 
       android:id="@+id/etAngleV" 
       android:layout_height="wrap_content" 
       android:inputType="numberSigned|numberDecimal" 
       android:layout_width="100dp" > 
      </EditText> 
      <Button android:text="Prev" 
       android:id="@+id/bPrevV" 
       android:layout_width="65dp" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="10dp"> 
      </Button> 
      <TextView android:text="" 
       android:id="@+id/tvAnsAng" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"> 
      </TextView> 
     </LinearLayout> 
     <LinearLayout android:layout_height="wrap_content" 
      android:layout_width="match_parent" 
      android:orientation="horizontal"> 
      <LinearLayout android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:orientation="vertical"> 
       <RadioGroup 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" >    
        <RadioButton android:layout_height="wrap_content" 
         android:layout_width="wrap_content" 
         android:checked="true" 
         android:text="Degrees" 
         android:layout_marginLeft="5dp" 
         android:id="@+id/rbDegV"> 
        </RadioButton> 
        <RadioButton android:layout_height="wrap_content" 
         android:layout_width="wrap_content" 
         android:checked="false" 
         android:text="Radians" 
         android:layout_marginLeft="5dp" 
         android:id="@+id/rbRadV"> 
        </RadioButton> 
       </RadioGroup> 
      </LinearLayout> 
      <RadioGroup 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" > 
       <LinearLayout android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:orientation="horizontal"> 
        <LinearLayout android:layout_height="wrap_content" 
         android:layout_width="wrap_content" 
         android:orientation="vertical"> 
         <RadioButton android:layout_height="wrap_content" 
          android:layout_width="wrap_content" 
          android:checked="false" 
          android:text="Q2" 
          android:layout_marginLeft="90dp" 
          android:id="@+id/rbQ2V"> 
         </RadioButton> 
         <RadioButton android:layout_height="wrap_content" 
           android:layout_width="wrap_content" 
           android:checked="false" 
           android:text="Q3" 
           android:layout_marginLeft="90dp" 
           android:id="@+id/rbQ3V"> 
         </RadioButton> 
        </LinearLayout> 
        <LinearLayout android:layout_height="wrap_content" 
         android:layout_width="wrap_content" 
         android:orientation="vertical"> 
         <RadioButton android:layout_height="wrap_content" 
          android:layout_width="wrap_content" 
          android:checked="true" 
          android:text="Q1" 
          android:layout_marginLeft="5dp" 
          android:id="@+id/rbQ1V"> 
         </RadioButton> 
         <RadioButton android:layout_height="wrap_content" 
           android:layout_width="wrap_content" 
           android:checked="false" 
           android:text="Q4" 
           android:layout_marginLeft="5dp" 
           android:id="@+id/rbQ4V"> 
         </RadioButton> 
        </LinearLayout> 
       </LinearLayout> 
      </RadioGroup>              
     </LinearLayout> 
     <Button android:text="Submit" 
      android:id="@+id/bSubmitV" 
      android:layout_width="75dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center"> 
     </Button> 
     <TextView android:text="" 
      android:id="@+id/tvErrorV" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:textColor="#fffafa"> 
     </TextView> 
     <LinearLayout android:id="@+id/llCanvasV" 
      android:layout_height="wrap_content" 
      android:layout_width="match_parent"> 
     </LinearLayout> 
    </LinearLayout> 

</ScrollView> 
+0

はあなたvectors.xmlを表示することができます。

このページには、いくつかの追加情報を提供しますか? – ligi

答えて

0

あなたvectors.xmlでVectorsViewを使用するか - しかし、あなたは属性を持つコンストラクタを追加する必要があります

または

あなたvectors.xmlでコンテナ(例えばのLinearLayout)を追加し、コードを介して、そこにあなたのvectorsViewを追加する - そしてあなたが持っているコンストラクタは十分です

0

ビューの階層はXMLで定義されています。

あなたのsetContentView()コールは、トップレベルのXML要素であるScrollViewをビュー階層のルートビューにします。

コードで作成したVectorsViewオブジェクトは、そのビュー階層には関連付けられていません。その階層にはないので、決して表示されません。そのonDraw()コードは決して呼び出されません。

onDraw()ルーチン内のaddView()およびsetContentView()の呼び出しは不適切です。一般的な順序は、onCreate()から呼び出されたコードでビュー階層を定義し、OSがその階層全体でonDraw()メソッドを呼び出せるようにすることです。

描画関連のコマンド以外のすべてをonDraw()から削除した場合は、setContentView(R.layout.vectors)呼び出しをsetContentView(vectorsView)に置き換えることで表示されます。もちろん、XMLで定義されたウィジェットはどれも表示されません。

http://developer.android.com/guide/topics/ui/index.html

関連する問題