图片放大缩小时如何固定住中心点 在使用 Matrix.postTranslate(dx, dy)平移一下中心点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 兄弟我遇到这个问题,纠结半天终于搞定,现在把我实现的给打会儿参考参考class ImageState { private float left; private float top; private float right; private float bottom; public void getScaleImagePoint(ImageView imageView){ Matrix matrix = imageView.getImageMatrix(); Rect rect = imageView.getDrawable().getBounds(); float[] values = new float[9]; matrix.getValues(values); setLeft(values[2]); setTop(values[5]); setRight(getLeft() + rect.width() * values[0]); setBottom(getTop() + rect.height() * values[0]); } public float getLeft() { return left; } public void setLeft(float left) { this.left = left; } public float getTop() { return top; } public void setTop(float top) { this.top = top; } public float getRight() { return right; } public void setRight(float right) { this.right = right; } public float getBottom() { return bottom; } public void setBottom(float bottom) { this.bottom = bottom; } }// 主要实现方式ImageState state = new ImageState();float percent = 30.0f;float centerX = iamgeView.getWidth()>>1;float centerY = iamgeView.getHeight()>>1;float scaleValue = percent / 250.0f + 1.0f; // 1.0f - 1.4f Matrix matrix = iamgeView.getImageMatrix();matrix.preTranslate(-centerX, -centerY);matrix.setScale(scaleValue, scaleValue);state.getScaleImagePoint(iamgeView);matrix.postTranslate(centerX-state.getRight()/2, centerY-state.getBottom()/2);iamgeView.setImageMatrix(matrix);postInvalidate(); POST提交数据不成功 刚从java转android,有个关于static的小问题不理解. ADT插件更新后,无法生成R文件了? 在模拟器上的sim卡中插入短信? 获取spinner上value的问题 错误 关于android中listview里面textview显示混乱 android创建文件问题 求教Android--javamail问题 droidplugin插件化开发,卡在“努力加载中”怎么办? android4.0 下, 一个IO 口控制的驱动的问题. 与自带浏览器共享SESSION
class ImageState {
private float left;
private float top;
private float right;
private float bottom;
public void getScaleImagePoint(ImageView imageView){
Matrix matrix = imageView.getImageMatrix();
Rect rect = imageView.getDrawable().getBounds();
float[] values = new float[9];
matrix.getValues(values);
setLeft(values[2]);
setTop(values[5]);
setRight(getLeft() + rect.width() * values[0]);
setBottom(getTop() + rect.height() * values[0]);
} public float getLeft() {
return left;
} public void setLeft(float left) {
this.left = left;
} public float getTop() {
return top;
} public void setTop(float top) {
this.top = top;
} public float getRight() {
return right;
} public void setRight(float right) {
this.right = right;
} public float getBottom() {
return bottom;
} public void setBottom(float bottom) {
this.bottom = bottom;
}
}
// 主要实现方式ImageState state = new ImageState();
float percent = 30.0f;
float centerX = iamgeView.getWidth()>>1;
float centerY = iamgeView.getHeight()>>1;
float scaleValue = percent / 250.0f + 1.0f; // 1.0f - 1.4f
Matrix matrix = iamgeView.getImageMatrix();
matrix.preTranslate(-centerX, -centerY);
matrix.setScale(scaleValue, scaleValue);
state.getScaleImagePoint(iamgeView);
matrix.postTranslate(centerX-state.getRight()/2, centerY-state.getBottom()/2);
iamgeView.setImageMatrix(matrix);
postInvalidate();