您的位置:首页 > 移动开发 > Android开发

android--图片的水平自动切换

2015-09-29 21:42 501 查看
实现该功能用到了Gallery组件,该组件能够水平方向显示图片内容,并可以拖动;

主要属性:

<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);
}






内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: