我在Android屏幕上显示了grIDvIEwImages.
我的要求是滑动全屏图像
这是我的代码:
ImageAdapter:
public class ImageAdapter extends BaseAdapter { private Context mContext; // Constructor public ImageAdapter(Context c) { mContext = c; } public int getCount() { return mThumbIDs.length; } public Object getItem(int position) { return null; } public long getItemID(int position) { return 0; } // create a new ImageVIEw for each item referenced by the Adapter public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) { ImageVIEw imageVIEw; if (convertVIEw == null) { imageVIEw = new ImageVIEw(mContext); imageVIEw.setLayoutParams(new GrIDVIEw.LayoutParams(85, 85)); imageVIEw.setScaleType(ImageVIEw.ScaleType.CENTER_CROP); imageVIEw.setpadding(8, 8, 8, 8); } else { imageVIEw = (ImageVIEw) convertVIEw; } imageVIEw.setimageResource(mThumbIDs[position]); return imageVIEw; } // Keep all Images in array public Integer[] mThumbIDs = { R.drawable.cn1, R.drawable.cn2, R.drawable.cn3, R.drawable.cn4, R.drawable.cn5, R.drawable.cn6, R.drawable.cn7, R.drawable.cn8, R.drawable.cn9, R.drawable.cn10, R.drawable.cn11, R.drawable.cn12 };}
主要活动:
public class MainActivity extends Activity { @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); GrIDVIEw grIDvIEw = (GrIDVIEw) findVIEwByID(R.ID.grIDvIEw); grIDvIEw.setAdapter(new ImageAdapter(this)); grIDvIEw.setonItemClickListener(new OnItemClickListener() { public voID onItemClick(AdapterVIEw<?> parent, VIEw v, int position, long ID) { // Send intent to SingleVIEwActivity Intent i = new Intent(getApplicationContext(), SingleVIEwActivity.class); // Pass image index i.putExtra("ID", position); Log.d("onCreateMain>>","OnCreateMain"); startActivity(i); } }); } @OverrIDe public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }}
SingleVIEwActivity:
public class SingleVIEwActivity extends Activity { @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.single_vIEw); Log.d("onCreate>>","OnCreate"); // Get intent data Intent i = getIntent(); // Selected image ID int position = i.getExtras().getInt("ID"); Log.d("position>>>","position"+position); ImageAdapter imageAdapter = new ImageAdapter(this); ImageVIEw imageVIEw = (ImageVIEw) findVIEwByID(R.ID.SingleVIEw); imageVIEw.setimageResource(imageAdapter.mThumbIDs[position]); }}
布局XMl文件:
activity_main.xml:
<?xml version="1.0" enCoding="utf-8"?><GrIDVIEw xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:ID="@+ID/grIDvIEw" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:columnWIDth="90dp" androID:numColumns="auto_fit" androID:verticalSpacing="10dp" androID:horizontalSpacing="10dp" androID:stretchMode="columnWIDth" androID:gravity="center"/>
single_vIEw.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" androID:orIEntation="vertical" > <ImageVIEw androID:ID="@+ID/SingleVIEw" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent"/></linearLayout>
我的要求是滑动全屏图像,有任何帮助吗?
解决方法:
VIEwPager可以让您在片段之间“滑动”,这正是您要实现的效果.只需将当前的SingleVIEwActivity变成一个片段:
public class SingleVIEwFragment extends Fragment { @OverrIDe public VIEw onCreateVIEw(LayoutInflater inflater, VIEwGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.single_vIEw, container, false); } @OverrIDe public voID onVIEwCreated(VIEw vIEw, Bundle savedInstanceState) { int resource = getArguments().getInt("image"); ImageVIEw imageVIEw = (ImageVIEw) findVIEwByID(R.ID.SingleVIEw); imageVIEw.setimageResource(imageAdapter.mThumbIDs[position]); }}
您将需要一个PagerAdapter来根据需要生成此片段.
public class ImagesPagerAdapter extends FragmentPagerAdapter{ public Integer[] mThumbIDs = { R.drawable.cn1, R.drawable.cn2, R.drawable.cn3, R.drawable.cn4, R.drawable.cn5, R.drawable.cn6, R.drawable.cn7, R.drawable.cn8, R.drawable.cn9, R.drawable.cn10, R.drawable.cn11, R.drawable.cn12 }; @OverrIDe public Fragment getItem(int i) { Bundle args = new Bundle(); args.putInt("image", mThumbIDs[i]); SingleVIEwFragment fragment = new SingleVIEwFragment(); fragment.setArguments(args); return fragment; } @OverrIDe public int getCount() { return mThumbIDs.length; }}
然后,您将需要一个包含单个VIEwPager的活动,将ImagesPagerAdapter的实例设置为其适配器,并为其指定启动位置.
public class SingleVIEwActivity extends Activity { @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_pager); // Selected image ID int position = getIntent().getIntExtra("ID", 0); VIEwPager pager = (VIEwPager) findVIEwByID(R.ID.pager); pager.setAdapter(new ImagesPagerAdapter(this)); pager.setCurrentItem(position); }}
其中activiy_pager只是一个包含所需VIEwPager的布局.
<VIEwPager xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:ID="@+ID/pager" androID:layout_wIDth="match_parent" androID:layout_height="match_parent"/>
总结 以上是内存溢出为你收集整理的Android显示全屏滑块图像全部内容,希望文章能够帮你解决Android显示全屏滑块图像所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)