Android-Gallery[使用C# And Java實現]

Halower發表於2015-03-23

執行效果

C#實現

using Android.App;
using Android.OS;
using Android.Widget;

namespace ImageDemo
{
    [Activity(Label = "@string/ApplicationName", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {
        private Gallery _gallery;
        private ImageView _selectedImg;
        private readonly int[] _imageIds = {
            Resource.Drawable.test1,
            Resource.Drawable.test2,
            Resource.Drawable.test3,
            Resource.Drawable.test4,
            Resource.Drawable.test5,
            Resource.Drawable.test6,
            Resource.Drawable.test7,
            Resource.Drawable.test8
    };
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Main);
            _gallery = FindViewById<Gallery>(Resource.Id.gallery);
            _selectedImg = FindViewById<ImageView>(Resource.Id.currentImg);
            _gallery.Adapter = new ImageAdapter(this, _imageIds);
            _gallery.ItemSelected += Gallery_ItemSelected;
        }

        private void Gallery_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
        {
            _selectedImg.SetImageResource(_imageIds[e.Position]);
        }
    }
public class ImageAdapter : BaseAdapter
    {
        private readonly Context _context;
        private readonly int[] _imageIds;
        public ImageAdapter(Context context,int[]imageIds)
        {
            _context = context;
            _imageIds = imageIds;
        }
        public override Object GetItem(int position)
        {
            return null;
        }

        public override long GetItemId(int position)
        {
            return 0;
        }

        public override int Count
        {
            get { return _imageIds.Length; }
        }
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            var image = new ImageView(_context);
            image.SetImageResource(_imageIds[position]);
            image.LayoutParameters = new Gallery.LayoutParams(150, 100);
            image.SetScaleType(ImageView.ScaleType.FitXy);
            return image;
        }
    }
}

 

Java實現

package com.example.halower.gallerydemo;

import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
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 static android.widget.Gallery.LayoutParams;


public class MainActivity extends ActionBarActivity {
    private int[] imageIds = {
            R.drawable.test1,
            R.drawable.test2,
            R.drawable.test3,
            R.drawable.test4,
            R.drawable.test5,
            R.drawable.test6,
            R.drawable.test7,
            R.drawable.test8
    };
    Gallery gallery;
    ImageView currentView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        gallery=(Gallery) findViewById(R.id.gallery);
        ImageAdapter adapter=new ImageAdapter(this,imageIds);
        currentView = (ImageView)findViewById(R.id.currentImg);
        gallery.setAdapter(adapter);
        gallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position,long id) {
                currentView.setImageResource(imageIds[position]);
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }

        });
    }
}

class  ImageAdapter extends BaseAdapter
{
    Context _context;
    int[] imageIds;
    public ImageAdapter(Context context,int[] imageIds){
        _context=context;
        this.imageIds=imageIds;
    }

    @Override
    public int getCount() {
        return imageIds.length;
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView=new ImageView(_context);
        imageView.setImageResource(imageIds[position]);
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
        imageView.setLayoutParams(new LayoutParams(70,100));
        return imageView;
    }

}

layout

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
    <ImageView
        android:layout_width="320dp"
        android:layout_height="320dp"
        android:id="@+id/currentImg"
        android:layout_centerHorizontal="true" />
    <Gallery
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:unselectedAlpha="0.6"
        android:spacing="2pt"
        android:layout_below="@+id/currentImg"
        android:id="@+id/gallery" />
</RelativeLayout>

 

相關文章