ImageView實現放大,不用ScaleType
时间: 2023-06-24 08:04:26 浏览: 42
如果不使用ScaleType,可以通过设置ImageView的LayoutParams来实现放大效果。
首先,需要定义一个变量来记录当前ImageView的放大倍数,比如放大两倍:
```
float scale = 2f;
```
接着,当需要放大ImageView时,可以通过修改LayoutParams的宽高参数来实现:
```
ImageView imageView = findViewById(R.id.imageView);
ViewGroup.LayoutParams layoutParams = imageView.getLayoutParams();
layoutParams.width = (int) (imageView.getWidth() * scale);
layoutParams.height = (int) (imageView.getHeight() * scale);
imageView.setLayoutParams(layoutParams);
```
当需要缩小ImageView时,同样可以通过修改LayoutParams的宽高参数来实现:
```
ImageView imageView = findViewById(R.id.imageView);
ViewGroup.LayoutParams layoutParams = imageView.getLayoutParams();
layoutParams.width = (int) (imageView.getWidth() / scale);
layoutParams.height = (int) (imageView.getHeight() / scale);
imageView.setLayoutParams(layoutParams);
```
需要注意的是,这种方式只是简单的修改了LayoutParams的宽高参数,而没有改变ImageView中显示的图片本身的大小。如果需要同时改变图片的大小,可以使用Matrix来进行缩放。