2011-02-02 4 views
1

私はVB経験(8y前)を使用してUIをデザインしようとするAndroid初心者です。私はチェッカーボードを作成しようとしています。これは、VBでは複数の行で必要に応じて複数のサイズ変更可能なパネルウィジェットを連続して追加するフォームになります。これらはパネルなので、小さな画像(コイン)を(パネルを背景にして)追加することも、コインを表示するために目に見えるようにすることもできます。私は、VBのUIが悪いことを記述知っているが、VBはフォームデザインを簡単にするためのものであり、実際には、それは私がUIのために考えることができる唯一の言語です。Android App用のボード(チェッカー)を描く

私は、アンドロイドSDKには、使用するウィジェットがほとんどないことがわかりました。私が考えることができる最高ののは、複数行のTableLayoutを使用することです。私が得られないことは、私が正方形を表現するために何を使用するかです。 VBパネルウィジェットに類似したものはありますか?ボードを画面の大きさに自動的に調整したいので、イメージを使用したくありません。

いくつかのヒントがありますか?

答えて

2

あなたが水平方向のLinearLayoutを使用してXMLでレイアウトを定義し、8 ImageViews(又は画像/色を表示することができる任意の他の容器)と、これに垂直のLinearLayoutにそれに類似する7回コピーしてそれを埋めることができ:

<LinearLayout android:orientation="vertical" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" > 
    <LinearLayout android:orientation="horizontal" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="1" > 
     <ImageView android:id="@+id/square_1" 
        android:layout_weight="1" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        <!-- Set image or background here --> /> 
     <!-- Repeat the ImageView 7 times and change the id for every ImageView 
      you create --> 
    </LinearLayout> 
    <!-- Reapeat the LinearLayout 7 times too --> 
</LinearLayout> 

これは、それぞれ8つの正方形で8つの行を作成し、すべての正方形が同じサイズを持ちます。これは、すべて同じ面積を取得する必要があることを示すweightプロパティです。

画像/背景を変更するには、Javaコードを使用するには、あなたが使用する必要があります:

ImageView square_1 = (ImageView)findViewById(R.id.square_1); 
square_1.setBackground(Color.yellow); 

読むよりAndroidのSDKリファレンスここ:

やってよ!

+0

ありがとうございました。今はJavaのグラフィックスライブラリを使って描いています。あなたは、XMLの使用が良いと思いますか? – user220201

+0

まず、コードはXMLで読みやすくなりますが、パフォーマンスは賢明ではありません。おそらく、遅いデバイスはすべてのビューを処理することはできませんが、描画に問題があるかもしれません。最善の方法はおそらくあなたが最も簡単だと思う方法です! – Hampus