ウェブアプリケーション,インジェクション,コマンドインジェクション

Androidアプリ開発 Viewをつかったインターフェースデザイン

Viewの位置取りのためにFrameLayoutを使う

Using FrameLayout for View Positioning

FrameLayoutは、1つのViewを表示するのに使える
スクリーン上のプレースホルダーです。
FrameLayoutに加えたViewは、常にレイアウトの左上に 固定されてます。
以下のコードは単純な画像ビューワーを作るための
FrameLayoutの使い方を示します。
activity_main.xmlファイルに以下のコードを加える必要もあり、
res/drawable-mdpiフォルダに
3つの画像が配置されていると想定してます。

<RelativeLayout>
  &emap;android:id="@+id/RLayout"
   android:layout_widget="match_parent"
   android:layout_height="match_parent"
   xmlns:android="http://schemas.androi.com/apk/res/android" >

   <TextView
     android:id="@+id/lblComments"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="Hello Android"
     android:layout_alignParentTop="true"
     android:layout_alignParentLeft="true" />

   <FrameLayout
     android:id="@+id/framelayout"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignLeft="@+id/lblComments"
     android:layout_below="@+id/lblComments"
     android:layout_centerHorizontal="true" />

   ImageView
     android:src="@drawable/img_1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:tag="1" />

   <ImageView
     android:src="@drawable/img_2"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:tag="2"
     android:vidibility="invisible" />

   <ImageView
     android:src="@drawable/img_3"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:tag="3"
     android:visibility="invisible" />
<FrameLayout>

<Button
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentRight="true"
   android:layout_alignParentTop="true"
   android:text="Next"
   android:onClick="btnClick" />
<RelativeLayout>

3つの画像ViewがFrameLayoutに加えてありますが、
それぞれの画像が前の画像の上に積み上げられていることに
注意してください。
この例では、二番目と三番目の画像にinvisibleがセットされてます。
二番目と三番目の画像を1つ1つ見せていくためには、
以下の様なコード部を使います。

package net.learn2develop.usingframelayout;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;

public class MainActivity extends Activity{
   int count = 1;
   FrameLayout frame;
   imageView imageview;

   @Override
   public void onCreate(Bundle savedInstanceState){
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main); >

   public voidbtnClick(View view){
     //---hide the current one---
     imageview = (ImageView) frame.findViewWithTag(String.valueOf(count));
     imageview.setVisibility(android.view.View.INVISIBLE);

     //---go to the next image---
     count++;
     if (count > 3) count = 1;

     //---show the next image---
     imageview = (ImageView) frame.findViewWithTag(String.valueOf(count));
     imageview.setVisibility(android.view.View.VISIBLE);
   }
}

上のコードはFrameLayoutに入っている画像Viewをプログラム的に配置し、
それぞれのViewを隠したり、見せたりします。

ホーム
便利堂ロゴ
inserted by FC2 system