XML文件布局基本构思
总体布局主要使用的是线性布局的垂直排列。
总体是1个ImageView,1个TextView,1个横向线性布局
添加2个按钮放入上述横向排列的线性布局之中即可
(主要是实现上一张下一张的图片以及图片标题切换)
MainActivity.java
这边要继承并接入监听接口
public class MainActivity extends AppCompatActivity implements View.OnClickListener
需获取1个ImageView、1个TextView、2个按钮,这里不写
然后使用2个自定义外部方法
(顾名思义是调用博主定义在主函数外的2个方法)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
}
然后自定义initData(),里面主要存放图片以及图片标题并且对对应的控件进行相关设置。
private void initData() {
titles = new String[]{"第1张图片", "第2张图片", "第3张图片", "第4张图片", "第5张图片"};
images = new int[]{R.drawable.photo1, R.drawable.photo2, R.drawable.photo3, R.drawable.photo4, R.drawable.photo5};
image.setImageResource(images[0]);
info.setText(titles[0]);
index = 0;
}
再自定义initView(),主要存放文本、图片以及按钮控件的获取,并且要实现对2个按钮的监听
private void initView() {
btn_l = (Button) findViewById(R.id.btn_left);
btn_r = (Button) findViewById(R.id.btn_right);
info = (TextView) findViewById(R.id.image_info);
image = (ImageView) findViewById(R.id.image1);
btn_l.setOnClickListener(this);
btn_r.setOnClickListener(this);
}
重写Onclick方法分情况判断点击的是哪个按钮,实现对图片的切换,并且再引用自定义外部方法
updateImageAndTitle();
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_left:
if (index == 0) {
index = titles.length - 1;//回到最后一张图片!
} else {
index--; //正常往前切换图片
}
break;
case R.id.btn_right:
if (index == titles.length - 1) {
index = 0; //回到第一张图片
} else {
index++; //正常往后切换图片
}
break;
}
updateImageAndTitle();
}
自定义外部方法updateImageAndTitle()的实现,很简单,主要是对文本、图片控件的更改设置
private void updateImageAndTitle(){
image.setImageResource(images[index]);
info.setText(titles[index]);
}
主要实现的一个图片上下切换器,简单入门构思。