1、图片工具类
public class MyImgView extends AppCompatImageView implements View.OnTouchListener, ScaleGestureDetector.OnScaleGestureListener {
boolean mboo = true;
Matrix matrix = new Matrix();
ScaleGestureDetector scaleGestureDetector;
public MyImgView(@NonNull Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (mboo) {
matrix.postTranslate((getWidth() - getDrawable().getIntrinsicWidth()) / 2, (getHeight() - getDrawable().getIntrinsicHeight()) / 2);
setImageMatrix(matrix);
mboo = false;
}
}
public MyImgView(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
setOnTouchListener(this);
scaleGestureDetector = new ScaleGestureDetector(context, this);
setScaleType(ScaleType.MATRIX);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
return scaleGestureDetector.onTouchEvent(event);
}
@Override
public boolean onScale(ScaleGestureDetector detector) {
float scale = scaleGestureDetector.getScaleFactor();
matrix.postScale(scale, scale, getWidth() / 2, getHeight() / 2);
setImageMatrix(matrix);
return true;
}
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
return true;
}
@Override
public void onScaleEnd(ScaleGestureDetector detector) {
}
}
2、布局
<?xml version="1.0" encoding="utf-8"?>
<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=".bank_4.TP_01Activity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#0099CC"
android:gravity="center"
android:padding="5dp"
android:text="图片详情"
android:textColor="@android:color/black"
android:textSize="20dp" />
<ImageView
android:id="@+id/back_fh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/back" />
</RelativeLayout>
<com.example.bank_ti_05.bank_4.utils.MyImgView
android:id="@+id/img"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/pic_01"
android:layout_gravity="center"/>
</LinearLayout>
3、Activity
public class TP_01Activity extends AppCompatActivity {
private ImageView backFh;
private ImageView img;
private int[] imgs = {R.mipmap.pic_01, R.mipmap.pic_01, R.mipmap.pic_01, R.mipmap.pic_01, R.mipmap.pic_01};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_t_p_01);
init();
backFh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TP_01Activity.this.finish();
}
});
Intent it = getIntent();
int id = it.getIntExtra("id", 0);
img.setImageResource(imgs[id]);
}
private void init() {
backFh = (ImageView) findViewById(R.id.back_fh);
img = (ImageView) findViewById(R.id.img);
}
}
4、运行结果
按住ctrl键、移动鼠标
5、工具类转载于
https://blog.csdn.net/qq_42048638/article/details/103401152