1.ImageSwitcher常用方法ImageSwitcher组件的主要功能是完成图片的切换显示。
ImageSwitche是View的子类,所以View类的属性和方法ImageSwitcher都具备。
- public ImageSwitcher(Context context): 创建ImageSwitcher对象
- public void setFactory(ViewSwitcher.ViewFactory factory):设置ViewFactory对象,用于完成两个图片切换时ViewSwitcher的转换 *** 作
- public void setImageResource(int resid): 设置显示的图片ID
- public void setInAnimation (Animation inAnimation): 图片读进ImageSwitcher时的动画效果
- public void setOutAnimation(Animation outAnimation): 图片从ImageSwitcher消失时的动画效果
- public void setImageDrawable (Drawable drawable):绘制图片
- public void setImageURI (Uri uri):设置图片地址,可读取网络图片
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<ImageSwitcher
android:layout_margin="20dp"
android:layout_gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="500dp"
android:id="@+id/imageSwitcher"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/pre"
android:layout_margin="20dp"
android:text="上一张"/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/next"
android:layout_margin="20dp"
android:text="下一张"/>
LinearLayout>
LinearLayout>
(2)MainActivity.java
package com.example.progressdialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.ViewSwitcher;
public class MainActivity extends AppCompatActivity {
private ImageSwitcher imageSwitcher;
private Button pre,next;
private int []images={R.drawable.p1,R.drawable.p2,R.drawable.p3
,R.drawable.p4,R.drawable.p5,R.drawable.p6};
private int count=0;//用于计数的变量
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageSwitcher=findViewById(R.id.imageSwitcher);
pre=findViewById(R.id.pre);
next=findViewById(R.id.next); //获取组件id
pre.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(MainActivity.this.count==0)
Toast.makeText(MainActivity.this,
"已是第一张,不能往前了!",Toast.LENGTH_SHORT).show();
else //获取指定图片,并将图片计数减1
MainActivity.this.imageSwitcher.setImageResource
(MainActivity.this.images[--MainActivity.this.count]);
}
});
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(MainActivity.this.count==images.length-1)
Toast.makeText(MainActivity.this,
"已是最后一张,不能往后了!",Toast.LENGTH_SHORT).show();
else //获取指定图片,并将图片计数加1
MainActivity.this.imageSwitcher.setImageResource
(MainActivity.this.images[++MainActivity.this.count]);
}
});
//设置转换工厂
imageSwitcher.setFactory(new ViewSwitcher.ViewFactory() {
@Override
public View makeView() {
ImageView imageView=new ImageView(MainActivity.this); //定义imageView组件
imageView.setBackgroundColor(0xFFFFFF); //设置背景
//按图片居中显示,当图片长/宽超过view的长/宽时,截取图片居中部分进行显示
imageView.setScaleType(ImageView.ScaleType.CENTER);
imageView.setLayoutParams(new FrameLayout.LayoutParams
(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
return imageView ;
}
});
imageSwitcher.setImageResource(images[count]);
imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));//设置进入时的动画效果
imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));//设置离开时的动画效果
}
}
图片资源下载后,复制到 res目录下drawable文件夹下。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)