有ImageViewA和ImageViewB,用使用 LayoutParams 参数来设置 View 的宽度和高度,然後 Bitmap 放大2倍後显示在 ImageViewA上。打開ImageViewB並且按著ImageViewA的2倍倍率來放大顯示,然後再放大到4倍。然後又打開ImageViewA,ImageViewA按ImageViewB的4倍的倍率來放大顯示
时间: 2023-06-20 20:06:53 浏览: 49
你可以使用以下代码实现此功能:
```java
// 获取Bitmap
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.my_image);
// 放大2倍
Matrix matrix = new Matrix();
matrix.postScale(2f, 2f);
Bitmap scaledBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
// 设置ImageViewA的宽高和Bitmap
ImageView imageViewA = findViewById(R.id.image_view_a);
imageViewA.setLayoutParams(new LinearLayout.LayoutParams(scaledBitmap.getWidth(), scaledBitmap.getHeight()));
imageViewA.setImageBitmap(scaledBitmap);
// 打开ImageViewB并放大
ImageView imageViewB = findViewById(R.id.image_view_b);
imageViewB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 放大2倍
Matrix matrix = new Matrix();
matrix.postScale(2f, 2f);
Bitmap scaledBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
// 设置ImageViewB的宽高和Bitmap
imageViewB.setLayoutParams(new LinearLayout.LayoutParams(scaledBitmap.getWidth(), scaledBitmap.getHeight()));
imageViewB.setImageBitmap(scaledBitmap);
// 再次放大到4倍
imageViewB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 放大4倍
Matrix matrix = new Matrix();
matrix.postScale(4f, 4f);
Bitmap scaledBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
// 设置ImageViewB的宽高和Bitmap
imageViewB.setLayoutParams(new LinearLayout.LayoutParams(scaledBitmap.getWidth(), scaledBitmap.getHeight()));
imageViewB.setImageBitmap(scaledBitmap);
}
});
}
});
// 打开ImageViewA并按照ImageViewB的4倍倍率放大
imageViewA.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 放大4倍
Matrix matrix = new Matrix();
matrix.postScale(4f, 4f);
Bitmap scaledBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
// 设置ImageViewA的宽高和Bitmap
imageViewA.setLayoutParams(new LinearLayout.LayoutParams(scaledBitmap.getWidth(), scaledBitmap.getHeight()));
imageViewA.setImageBitmap(scaledBitmap);
}
});
```
注意,以上代码中的 `R.drawable.my_image` 应该替换成你自己的图片资源。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)