0

我有一个GalleryView带有一些图片的,我想要一个TextView随图片变化的。谁能告诉如何在每张图片中添加描述。我是 android 新手。任何帮助或指导

这是我的代码:

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 回答