Галерея AndroidПросмотреть проблему - PullRequest
0 голосов
/ 28 июня 2011

У меня проблема с просмотром галереи Android, в моем приложении много картинок.И я хочу показать их по Gallerview и сделать их по выбору.Я решил отобразить их горизонтальную прокрутку и сделать их выбираемыми с помощью Galleryview, но мне нужно по одному изображению на экране за раз, после горизонтальной прокрутки полосы прокрутки пользователем должна быть показана другая картинка.Мой тестовый код ниже и показывает 3 картинки на экране, от http://www.androidpeople.com/android-gallery-example:

        package com.projects.cards;

    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.AdapterView.OnItemClickListener;
    import android.widget.BaseAdapter;
    import android.widget.Gallery;
    import android.widget.ImageView;
    import android.widget.Toast;

public class GaleryTestActivity extends Activity {

private Gallery gallery;

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

    gallery = (Gallery) findViewById(R.id.examplegallery);
    gallery.setAdapter(new AddImgAdp(this));

    gallery.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView parent, View v, int position, long id) {
            // Displaying the position when the gallery item in clicked
            Toast.makeText(GaleryTestActivity.this, "Position=" + position, Toast.LENGTH_SHORT).show();
        }
    });

}

public class AddImgAdp extends BaseAdapter {
    int GalItemBg;
    private Context cont;

    // Adding images.
    private Integer[] Imgid = {
            R.drawable.a_1, R.drawable.a_2, R.drawable.a_3, R.drawable.a_4, R.drawable.a_5, R.drawable.a_6, R.drawable.a_7
    };

    public AddImgAdp(Context c) {
        cont = c;
        TypedArray typArray = obtainStyledAttributes(R.styleable.GalleryTheme);
        GalItemBg = typArray.getResourceId(R.styleable.GalleryTheme_android_galleryItemBackground, 0);
        typArray.recycle();
    }

    public int getCount() {
        return Imgid.length;
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imgView = new ImageView(cont);

        imgView.setImageResource(Imgid[position]);
        // Fixing width & height for image to display
        imgView.setLayoutParams(new Gallery.LayoutParams(200, 160));
        imgView.setScaleType(ImageView.ScaleType.FIT_XY);
        imgView.setBackgroundResource(GalItemBg);

        return imgView;
    }
}

}

Как я могу решить эту проблему?

Заранее спасибо..

Ответы [ 3 ]

0 голосов
/ 28 июня 2011

Я реализовал вид галереи, подобный тому, который упомянут ниже в ссылке.Пожалуйста, попробуйте это также: Галерея Android с подписью

0 голосов
/ 28 июня 2011

Насколько я понимаю, вы хотите, чтобы сфокусированное изображение занимало все пространство экрана. Вы можете добиться этого, установив ширину ImageView, где вы привязываете его к галерее (в getView). Попробуйте установить ширину изображения в соответствии с шириной экрана устройства.

Обратите внимание, что вы также можете установить интервал между элементами в Галерее с помощью метода gallery.setSpacing (...).

Не могу сказать, как показать полосу прокрутки, извините.

0 голосов
/ 28 июня 2011

Вы можете попробовать вернуть представление с заполнителем parent в качестве ширины, которая содержит ваше изображение-изображение из ваших адаптеров getView () ...

Или также вы можете сделать что-то вроде этого

функция getview

public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater iteminflater = LayoutInflater.from(cont);
    View gallaryitem = iteminflater .inflate(R.layout.gallaryitem, null);
    ImageView imgView= (ImageView ) gallaryitem .findViewById(R.id.image);
    imgView.setImageResource(Imgid[position]);
    gallaryitem .setBackgroundResource(GalItemBg);
    return gallaryitem ;
    }

gallaryitem.xml

<LinearLayout android:layout_width="fill_parent" 
              android:layout_height="wrap_content" 
              android:orientation="vertical" 
              xmlns:android="http://schemas.android.com/apk/res/android" >    
       <LinearLayout android:layout_width="wrap_content" 
                     android:layout_height="wrap_content" 
                     android:orientation="horizontal" 
                     android:layout_gravity="center_horizontal"   
                     xmlns:android="http://schemas.android.com/apk/res/android" >

           <ImageView android:layout_width="wrap_content" 
                      android:id="@+id/image" 
                      android:layout_height="wrap_content"  
                      android:src="@drawable/icon"   
                      xmlns:android="http://schemas.android.com/apk/res/android" >

           </ImageView>
       </LinearLayout>
</LinearLayout>
...