0

私はGalleryViewいくつかの写真付きの を持ってTextViewいます。写真によって変化する が欲しいです。各画像内に説明を追加する方法を誰でも教えてもらえますか?私はアンドロイドが初めてです。ヘルプまたはガイド

これは私のコードです:

XML:

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

<Gallery 
android:id="@+id/Gallery01" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"></Gallery>
<ImageView 
android:id="@+id/ImageView01" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"></ImageView>


</LinearLayout>

ジャワ:

import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class GalleryView extends Activity {
Integer[] pics = {
        R.drawable.antartica1,
        R.drawable.antartica2,
        R.drawable.antartica3,
        R.drawable.antartica4,
        R.drawable.antartica5,
        R.drawable.antartica6,
        R.drawable.antartica7,
        R.drawable.antartica8,
        R.drawable.antartica9,
        R.drawable.antartica10
};
ImageView imageView;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Gallery ga = (Gallery)findViewById(R.id.Gallery01);
    ga.setAdapter(new ImageAdapter(this));

    imageView = (ImageView)findViewById(R.id.ImageView01);
    ga.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            Toast.makeText(getBaseContext(), 
                    "You have selected picture " + (arg2+1) + " of Antartica", 
                    Toast.LENGTH_SHORT).show();
            imageView.setImageResource(pics[arg2]);

        }

    });

}


public class ImageAdapter extends BaseAdapter {

    private Context ctx;
    int imageBackground;

    public ImageAdapter(Context c) {
        ctx = c;
        TypedArray ta = obtainStyledAttributes(R.styleable.Gallery1);
        imageBackground = ta.getResourceId(R.styleable.Gallery1_android_galleryItemBackground, 1);
        ta.recycle();
    }

    public int getCount() {

        return pics.length;
    }

    public Object getItem(int arg0) {

        return arg0;
    }

    public long getItemId(int arg0) {

        return arg0;
    }

    public View getView(int arg0, View arg1, ViewGroup arg2) {
        ImageView iv = new ImageView(ctx);
        iv.setImageResource(pics[arg0]);
        iv.setScaleType(ImageView.ScaleType.FIT_XY);
        iv.setLayoutParams(new Gallery.LayoutParams(150,120));
        iv.setBackgroundResource(imageBackground);
        return iv;
    }

}
}
4

1 に答える 1

0

TextViewで画像を選択したときにテキストを変更する が必要な場合Gallery。これTextViewは の外にありGalllery、ギャラリー アイテムを選択すると内容が変更されます。以下のコードがヒントになるかもしれません。

XML:

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

<Gallery 
android:id="@+id/Gallery01" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"></Gallery>
<ImageView 
android:id="@+id/ImageView01" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"></ImageView>

<TextView 
android:id="@+id/TextView01" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:layout_below="@+id/ImageView01"></TextView >


</LinearLayout>

あなたのJavaコードでは、onIteSelectedListener()を更新するを設定する必要がありますTextView

1) を初期化しTextViewます。

 TextView textView = (TextView)findViewById(R.id.TextView01);

2) のonitemSelectedListener()設定Gallery:

    ga.setOnItemClickListener(galleryOnItemSelectedListener);

3)あなたOnItemSelectedListener()は次のようになります:

OnItemSelectedListener galleryOnItemSelectedListener = new OnItemSelectedListener() {

    @Override
    public void onItemSelected(AdapterView<?> arg0, View view, int position,
            long arg3) {
            // update the TextView here depending on the position of item selected
            // from a description array or tag value from view.
            // i.e texteView.setText(descriptions[position]);

    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub

    }
};
于 2012-08-17T13:03:32.750 に答える