android--图片的水平自动切换
2015-09-29 21:42
501 查看
实现该功能用到了Gallery组件,该组件能够水平方向显示图片内容,并可以拖动;
主要属性:
创建一个BaseAdapter类对象,重写其中的方法
CutImage()利用计时器反复执行某个动作
主要属性:
<Gallery android:layout_width="match_parent" android:layout_height="wrap_content" android:animationDuration="1000"//用于列表项切换时的动画持续时间 android:id="@+id/gallery1" android:spacing="5dp"//列表项之间的距离 android:unselectedAlpha="1"//用于没有选中的列表项的透明度(0表示完全透明) />
创建一个BaseAdapter类对象,重写其中的方法
private void ShowGallery() { // TODO Auto-generated method stub myGallery = (Gallery) findViewById(R.id.gallery1); BaseAdapter mybaseAdapter = new BaseAdapter() { @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub int pos; ImageView imageView = new ImageView(MainActivity.this); imageView.setBackgroundColor(0xFFFFFFFF); imageView.setScaleType(ImageView.ScaleType.FIT_XY);//设置缩放方式 imageView.setLayoutParams(new Gallery.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));//图片显示高和宽 if(position>=len){ pos=(position%len); }else{ pos=position; } imageView.setImageResource(myimage[pos]); return imageView; } @Override public long getItemId(int position) { // TODO Auto-generated method stub if(position>=len){ return position%len; }else{ return position; } } @Override public Object getItem(int position) { // TODO Auto-generated method stub if(position>=len){ return position%len; }else{ return position; } } @Override public int getCount() { // TODO Auto-generated method stub return Integer.MAX_VALUE;//返回Integer的最大值为了无限循环,上面的取余也是 } }; myGallery.setAdapter(mybaseAdapter);//关联 CutImage();//切换图片 }<pre name="code" class="java"> private void ShowGallery() { // TODO Auto-generated method stub myGallery = (Gallery) findViewById(R.id.gallery1); BaseAdapter mybaseAdapter = new BaseAdapter() { @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub int pos=position; Log.i("hany", ""+position); ImageView imageView = new ImageView(MainActivity.this); if(convertView==null){ imageView.setBackgroundColor(0xFFFFFFFF); imageView.setScaleType(ImageView.ScaleType.FIT_XY); imageView.setLayoutParams(new Gallery.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT)); if(position>=len){ pos=(position%len); }else{ pos=position; } }else{ imageView=(ImageView) convertView; } imageView.setImageResource(myimage[pos]); SmallImageUpdate(pos); return imageView; } @Override public long getItemId(int position) { // TODO Auto-generated method stub if(position>=len){ return position%len; }else{ return position; } } @Override public Object getItem(int position) { // TODO Auto-generated method stub if(position>=len){ return position%len; }else{ return position; } } @Override public int getCount() { // TODO Auto-generated method stub return Integer.MAX_VALUE; } }; myGallery.setAdapter(mybaseAdapter);//关联 CutImage();//切换图片
CutImage()利用计时器反复执行某个动作
private void CutImage() { // TODO Auto-generated method stub Getnowdate(); mytime= new Timer();//一种计时器详见android--Timer mytask = new TimerTask() { @Override public void run() { // TODO Auto-generated method stub Message m = new Message(); m.what=1; myhandler.sendMessage(m); } }; myhandler = new Handler(){ @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); if(msg.what==1){ //Getnowdate(); UpdateImage(); } } }; mytime.schedule(mytask, 1000, 4000); }UpdateImage():
<pre name="code" class="java"> private void SmallImageUpdate(int index){ Reset(); ImageView imageView; imageView = (ImageView) findViewById(Smallimage[index]); imageView.setBackgroundResource(R.drawable.gray2); myGallery.setSelection(index); }
private void Reset(){ ImageView view1 = (ImageView) findViewById(R.id.image1); ImageView view2 = (ImageView) findViewById(R.id.image2); ImageView view3 = (ImageView) findViewById(R.id.image3); ImageView view4 = (ImageView) findViewById(R.id.image4); ImageView view5 = (ImageView) findViewById(R.id.image5); view1.setBackgroundResource(R.drawable.white); view2.setBackgroundResource(R.drawable.white); view3.setBackgroundResource(R.drawable.white); view4.setBackgroundResource(R.drawable.white); view5.setBackgroundResource(R.drawable.white); }
相关文章推荐
- Android 友盟社会化组件-分享实现
- 获取手机中的视频
- android--计时器(Timer)
- android dialog left_icon
- android中相对布局入门
- Android屏幕适配及周边
- Android --学习笔记
- Android基础入门教程——2.5.3 AlertDialog(对话框)详解
- listview中嵌套gridview
- android学习-----Fragment
- Android 5.1 Contacts源码分析(三):Contacts模块Fargment结构
- android4.4 js调用java
- 使用反射机制实现对类中私有方法的调用
- android的Drawable资源
- android 按两次返回键退出
- android中日期加天数的方法
- Android 随着输入框控件的清除功能ClearEditText,抄IOS输入框
- android自定义dialog
- android学习-----多线程
- android进程间通讯方式