Today I’m going to share a very simple feature:
The use of Android native control Gallery photo drag effects
The implementation idea is as follows:
- Define a Gallery control in the layout file
- Since there are multiple images to display, I used the Android native image resource for convenience
- Gallery is just a control, and to bind image data to the control, you need a custom adapter that extends from BaseAdapter
The source code is as follows:
1, Main activity and custom inner class ImageAdapter:
import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.ImageView; import com.example.memorydemo.R; public class SimpleGallery extends Activity { private static final String TAG = "SimpleGallery"; @Override protected void onCreate(Bundle onSavedInstance) { super.onCreate(onSavedInstance); setContentView(R.layout.simple_gallery_layout); Gallery gallery = findViewById(R.id.gallery); gallery.setAdapter(new ImageAdapter(this)); } private class ImageAdapter extends BaseAdapter {private int[] imageIds = { android.R.drawable.btn_minus, android.R.drawable.btn_radio, android.R.drawable.ic_lock_idle_low_battery, android.R.drawable.ic_menu_camera }; private Context mContext; public ImageAdapter(Context context) { mContext = context; } @Override public int getCount() { return imageIds.length; } @Override public Object getItem(int position) { return imageIds[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; if (convertView == null) { Log.i(TAG, "convertView is null, create new imageview"); imageView = new ImageView(mContext); } else { Log.i(TAG, "Cast convertView to ImageView"); imageView = (ImageView) convertView; } imageView.setImageResource(imageIds[position]); imageView.setScaleType(ImageView.ScaleType.FIT_XY); // Notice the use of Gallery.LayoutParams as the layout parameter type, Views given to the Gallery should use // Gallery.LayoutParams s their ayout parameters type) // Since Android native images are small, I set the height to 500, Easy to see effect imageView. SetLayoutParams (new Gallery. LayoutParams (ViewGroup. LayoutParams. MATCH_PARENT, 500)); return imageView; }}}Copy the code
2. The layout file simple_gallery_layout. XML is as follows:
<? The XML version = "1.0" encoding = "utf-8"? > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Gallery android:id="@+id/gallery" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>Copy the code
Note:
The Gallery control is deprecated and should be replaced with a HorizontalScrollView and ViewPager.
@deprecated This widget is no longer supported. Other horizontally scrolling widgets include {@link HorizontalScrollView} and {@link android.support.v4.view.ViewPager} from the support library.
I’ll share how the HorizontalScrollView and ViewPager controls are used later.
This article is published by OpenWrite, a blogging tool platform