私はJavaプログラミングをよく知っています。私は Android プロジェクトに取り組んでおり、Android 用のアプリケーションを作成する方法について学びました。ただ、androidのインターフェースについて、よくわからない点があります。Java で作業しているときに、コード スクリーン パネルや Swing、AWT、SWT などのインポートを使用しましたが、現在 XML ファイルでインターフェイスを作成していますが、XML ファイルでインターフェイスを作成する方法がわかりません。そのロジックが知りたいです。XMLファイルについて教えてください。
1 に答える
XML は HTML のようなものだと考えてください。基本的にはマークアップを使用して UI コンポーネントを定義し、位置、サイズ、色などの基本的なスタイル属性を与えますが、実際には動作プロパティは与えません。HTML などの XML タグには、プロパティを定義する名前と属性があります。多くの場合、ネストすることもできます。タグに他のタグがネストされている場合、それらのタグを子と呼びます。子を持つタグには、開始タグ () と終了タグ () があります。子はその間に定義されます。子を持たないタグは、囲んでいる > の前に / (スラッシュ) を置くことで、終了タグを省略できます。
<LinearLayout>
<Button
android:layout_width="100dp"
android:layout_height="25dp"
android:id="@+id/my_button"
android:text="CLICK HERE" />
</LinearLayout>
簡単に言えば、属性には android: ラベルが付けられているため、xml パーサーはそれらが android によって定義されたプロパティであることを適切に認識できます。Eclipse ADT (Eclipse を使用していない場合は SDK ツール) に含まれるビルド ツールは、対応するプロパティが適切に設定された Java オブジェクトをバックグラウンドで生成するため、その作業を行う必要はありません。また、レイアウト要素用に生成する Java オブジェクトへのポインタを含む R.java ファイルも生成するため、Java コードで簡単に参照できます。
Button myButton = (Button) findViewById(R.id.my_button);
myButton.setOnClickListener(...);
必要に応じて、レイアウト/UI 開発を完全に Java コードで行うこともできますが、対応する XML コードで暗示/省略されている多くの値を明示的に設定する必要があるため、はるかに冗長で面倒になります。XML は時間を大幅に節約し、ビジュアル エディターを使用すると、思い通りの外観を簡単かつ迅速に実現できます。
XML を使用すると、簡単に国際化したい文字列や、正しく行われた場合に画面サイズと解像度を簡単に拡大縮小できる単純なドローアブル、単純なアニメーションなどを定義することもできます。リソース ディレクトリで「修飾パス名」を使用すると、XML で定義された任意の値/リソース (レイアウト、ドローアブル、文字列など) の代替バージョンを提供できます。これは、ユーザーのデバイスに基づいて実行時に適切に交換されます。 & 設定。
たとえば、横向きの場合は res/layout-land で main.xml などのレイアウトを定義し、縦向きの場合は res/layout-port で代替バージョンを定義できます。次に、アプリはユーザーの向きに対応するレイアウトを自動的に読み込みます。同様に、res/values-en/strings.xml で "Yes" の値を持つ文字列 (button_label など) を定義し、res/values-es/strings で同じ名前の文字列 button_label を定義できます。 xml の値は「Si」です。ユーザーのロケールが英語に設定されている場合は、「はい」が使用されます。ローカルがスペイン語の場合、「Si」が使用されます。
http://developer.android.com/training/basics/firstapp/building-ui.html
http://developer.android.com/guide/topics/ui/declaring-layout.html
http://developer.android.com/guide/topics/resources/overview.html
http://developer.android.com/guide/topics/graphics/view-animation.html