Android 는 갤러리 를 사용 하여 사진 드래그 효 과 를 구현 합 니 다.

오늘 은 매우 간단 한 기능 을 공유 할 것 이다.
Android 네 이 티 브 컨트롤 Gallery 를 사용 하여 사진 드래그 효 과 를 구현 합 니 다.
실현 방향 은 다음 과 같다.
  • 레이아웃 파일 에서 Gallery 컨트롤 을 정의 합 니 다
  • 여러 장의 그림 을 표시 해 야 하기 때문에 편 의 를 위해 저 는 안 드 로 이 드 원생 의 사진 자원 을 직접 인 용 했 습 니 다
  • Gallery 는 하나의 컨트롤 일 뿐 이미지 데 이 터 를 컨트롤 과 연결 하기 위해 BaseAdapter 를 계승 하 는 사용자 정의 어댑터 가 필요 합 니 다.
  • 원본 코드 는 다음 과 같 습 니 다.
    1.주 activity 와 사용자 정의 내부 클래스 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 {
    
        //       Android       
        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);
    						
    		  //       Gallery.LayoutParams        ,        (Views given to the Gallery should use 
    			// Gallery.LayoutParams s their ayout parameters type)
    			//   Android      ,        500,     
          imageView.setLayoutParams(new Gallery.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 500));
          return imageView;
        }
      }
    }
    
    2.레이아웃 파일 simplegallery_layout.xml 는 다음 과 같 습 니 다.
    
    <?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>
    
    주의:
    Gallery 컨트롤 은 사실 폐기 되 었 습 니 다.Horizontal ScrollView 와 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.
    Horizontal ScrollView 와 ViewPager 두 컨트롤 을 어떻게 사용 하 는 지 나중에 공유 합 니 다.
    이상 은 안 드 로 이 드 가 Gallery 를 사용 하여 사진 드래그 효 과 를 실현 하 는 상세 한 내용 입 니 다.안 드 로 이 드 사진 드래그 효과 에 관 한 자 료 는 다른 관련 글 을 주목 하 세 요!

    좋은 웹페이지 즐겨찾기