android - 我需要 scaleType="matrix" 以便在 ImageView 中拖动对象。我希望使用默认的 fit_center 使图像更小
问题描述
我需要在 XML 中进行 scaleType="matrix" 以便在 ImageView 中移动图像,但是图像太大,scaleType="fit_center" 使图像大小合适。我如何拥有 scaleType="fit_center" 或类似效果的东西,并且仍然可以拖动图像。
这是java代码:
private ImageView imageView;
private Matrix matrix=new Matrix();
private Matrix savedMatrix=new Matrix();
private PointF start=new PointF();//PointF holds 2 coordinates
private Bitmap bmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView=(ImageView)findViewById(R.id.photo);
imageView.setOnTouchListener(this);
}
public boolean onTouch(View v, MotionEvent event){
imageView=(ImageView)v;
switch(event.getAction() & MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_DOWN://first pointer down
savedMatrix.set(matrix);
start.set(event.getX(), event.getY());
break;
case MotionEvent.ACTION_MOVE:
matrix.set(savedMatrix);
float dx=event.getX()-start.x;
float dy=event.getY()-start.y;
matrix.postTranslate(dx,dy);
break;
}//switch
imageView.setImageMatrix(matrix);
bmap = Bitmap.createBitmap(imageView.getWidth(), imageView.getHeight(), Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(bmap);
imageView.draw(canvas);
return true;
}
}
解决方案
推荐阅读
- python - pandas.Series.unique() 在分析字符串时给 np.unique() 不同的结果
- dart - Flutter:构建函数返回 null 并且 NoSuchMethodError:在 null 上调用了方法“[]”
- php - 如何将 mysqli 数据库中的 PDF、图像、MP3、MP4 文件插入 html php
- java - 在没有ORM的情况下在sql中映射一对多的方法
- video - Vimeo 自动播放静音视频和取消静音不起作用
- javascript - 将响应数据附加到输入表单
- database - 从索引 mongod 中删除单个字段
- html - BASH:如何将 html 页面的输出转换为 txt 文件
- python - 在 PyQt 中计算两个值
- sql - 未显示所需结果的查询,即按日期顺序排序