一、imageview设置图片位置
在实际项目中,有时候需要把图片放置在指定的位置,此时我们可以使用RelativeLayout或FrameLayout等Layout进行布局,再通过设置imageview控件的布局参数来实现位置的设定。
首先,在布局文件中定义好imageview控件,并设置它的id:
<ImageView android:id="@+id/image_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/image" />
然后,在代码中获取该控件,在设置布局参数时通过Margin来指定图片位置。
ImageView imageView = findViewById(R.id.image_view); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); layoutParams.setMargins(leftMargin, topMargin, rightMargin, bottomMargin); imageView.setLayoutParams(layoutParams);
其中leftMargin、topMargin、rightMargin、bottomMargin为要设置的上下左右边距。
二、imageview设置图片大小
有时候我们需要对显示的图片进行缩放,此时可以设置图片控件的布局参数来实现。
首先,在布局文件中定义好imageview控件,并设置它的id:
<ImageView android:id="@+id/image_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/image" />
然后,在代码中获取该控件,在设置布局参数时通过width和height来指定图片大小。
ImageView imageView = findViewById(R.id.image_view); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(imageWidth, imageHeight); imageView.setLayoutParams(layoutParams);
其中imageWidth和imageHeight为要设置的图片宽度和高度值。
三、imageview保存图片标尺
有时候我们需要对选中的图片进行保存,此时可以利用图片控件的getDrawingCache()方法来获取图片,并进行保存操作。
首先,在布局文件中定义好imageview控件,并设置它的id:
<ImageView android:id="@+id/image_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/image" />
然后,在代码中获取该控件,设置允许获取DrawingCache,并通过ByteArrayOutputStream将DrawingCache转化为byte数组。
ImageView imageView = findViewById(R.id.image_view); imageView.setDrawingCacheEnabled(true); imageView.buildDrawingCache(); Bitmap bitmap = imageView.getDrawingCache(); ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); byte[] byteArray = stream.toByteArray();
最后,可以将byte数组转化为输出流,进行文件保存操作。
四、imagej设置切片选取
有时候我们需要对一张大图进行分割显示,此时可以使用imagej进行选取切片的操作。
首先,将需要进行分割的大图导入到imagej中,选择"Image"->"Type"->"8-bit",转化图像类型为8-bit。
然后,通过selection tool进行选择切片的区域,选择完毕后通过“Edit”菜单中的“Copy”或“Ctrl+C”将选中区域复制。
最后,选择“File”菜单中的“New”->“Image”->"From Clipboard",即可将选中切片区域导出成为一个新的图像。
完整代码示例
1. imageview设置图片位置:
ImageView imageView = findViewById(R.id.image_view); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); layoutParams.setMargins(leftMargin, topMargin, rightMargin, bottomMargin); imageView.setLayoutParams(layoutParams);
2. imageview设置图片大小:
ImageView imageView = findViewById(R.id.image_view); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(imageWidth, imageHeight); imageView.setLayoutParams(layoutParams);
3. imageview保存图片标尺:
ImageView imageView = findViewById(R.id.image_view); imageView.setDrawingCacheEnabled(true); imageView.buildDrawingCache(); Bitmap bitmap = imageView.getDrawingCache(); ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); byte[] byteArray = stream.toByteArray();
4. imagej设置切片选取:
详见imagej官网的相关文档和教程。