检测并放大缩小
private boolean check() {
if (tmp.getWidth() == this.getWidth()
&& tmp.getHeight() == this.getHeight()) {
return true;
}
System.out.println("s ->w"+this.getWidth()+"p ->w"+tmp.getWidth()+"/n"+"s ->h"+this.getHeight() + "p ->h"+tmp.getHeight());
if (this.getWidth() > tmp.getWidth()
|| this.getHeight() > tmp.getHeight()) {//某一个边小于屏幕的边 就放大
// 放大
System.out.println("放大");
scaleFactor = Math.max(
(float) this.getWidth() / (float) tmp.getWidth(),
(float) this.getHeight() / (float) tmp.getHeight());
} else {//两个边都大于屏幕的边 则缩小图片
// 缩小
System.out.println("缩小");
scaleFactor = Math.max(
(float) this.getWidth() / (float) tmp.getWidth(),
(float) this.getHeight() / (float) tmp.getHeight());
}
System.out.println("scaleFactor:" + scaleFactor);
matrix.postScale(scaleFactor, scaleFactor);
return false;
}
居中
protected void center( ) {
float height = tmp.getHeight() * scaleFactor;
float width = tmp.getWidth() * scaleFactor;
deltaX = 0;
deltaY = 0;
if (vertical && height > this.getHeight()) {
deltaY = (this.getHeight() - height) / 2;
}
if (horizontal && width > this.getWidth()) {
deltaX = (this.getWidth() - width) / 2;
}
matrix.postTranslate(deltaX, deltaY);
}