提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
- 属性
- 缩放类型
- 实现代码
一、属性
- src:设置图片资源
- scaleType:设置图片的限制
- maxHeight:最大高度
- maxWidth:最大宽度
- adjustViewBounds:调整View的边界
<?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:src="@drawable/a"
android:scaleType="centerInside"
android:layout_width="200dp"
android:layout_height="200dp"/>
<ImageView
android:src="@drawable/b"
android:maxHeight="200dp"
android:maxWidth="200dp"
android:adjustViewBounds="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
二、缩放的类型
- fitstart :右上角,缩放直到较长的边到达边界
- fitCenter:中间
- fitEnd:右下角
- fitXY:拉伸变化
- center:保持原图大小,显示在ImageView的中间,大于的部分做裁剪
- centerCrop:保持宽高比的缩放,可能出现图片不完全
- centerinside:保持宽高比的缩放图片,直到完全覆盖
- matrix:不改变原图的大小,从ImageView的左上角开始绘制原图,超出的部分剪裁处理
总结
- 图片名称不能数字开头
- 最大宽高一定要和adjustViewBounds结合
package com.example.liearlayout;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
Button btn_last,btn_next;
// TextView txt;
// EditText edit;
// RadioButton r1,r2;
ImageView img;
private int[] imgs ={
R.drawable.img1,
R.drawable.img2,
R.drawable.img3,
R.drawable.img4,
R.drawable.img5,
R.drawable.img6
};
int index = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img =findViewById(R.id.img);
btn_last=findViewById(R.id.btn_last);
btn_next=findViewById(R.id.btn_next);
btn_last.setOnClickListener(new mClick());
btn_next.setOnClickListener(new mClick());
}
class mClick implements View.OnClickListener
{
public void onClick(View v){
if(v==btn_last){
if(index > 0 && index<imgs.length){
index--;
img.setImageResource(imgs[index]);
}else{index=imgs.length+1;}
}
if(v==btn_next){
if(index > 0 && index<imgs.length-1){
index++;
img.setImageResource(imgs[index]);
}else{index=imgs.length-1;}
}
}
}
}
<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center|fill"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">
<ImageView
android:id="@+id/img"
android:layout_width="240dip"
android:layout_height="240dip"
android:layout_centerVertical="true"
android:src="@drawable/img1"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="150dip"
android:layout_height="wrap_content"
android:id="@+id/btn_last"
android:text="上一张"/>
<Button
android:layout_width="150dip"
android:layout_height="wrap_content"
android:id="@+id/btn_next"
android:text="下一张"/>
</LinearLayout>
</LinearLayout>