在我的应用程序中,图像是从相机捕获的,然后显示在ImageView
我已经成功地完成了此方法,但是当我的图像显示在ImageView
中时,图像显示在旋转后
我想旋转图像,然后在ImageView
中显示
当我单击前摄像头上的图像时,在下面代码的帮助下,图像显示正确
Matrix matrix = new Matrix();
matrix.postRotate(90);
Bitmap rotate = Bitmap.createBitmap(scale,0,0,scale.getWidth(),scale.getHeight(),matrix,true);
displayImage.setImageBitmap(rotate);
但当我从后摄像头点击时,图像将显示在前摄像头的对面。还有一件事,当我从不同角度单击“来自摄影机的图像”时,图像将以不同角度显示在ImageView
中。
我在应用程序中使用以下代码<它对我有用
File mediaFile = new File(mediaPath);
Bitmap bitmap;
if (mediaFile.exists()) {
if (isImage(mediaPath)) {
Bitmap myBitmap = BitmapFactory.decodeFile(mediaFile.getAbsolutePath());
int height = (myBitmap.getHeight() * 512 / myBitmap.getWidth());
Bitmap scale = Bitmap.createScaledBitmap(myBitmap, 512, height, true);
int rotate = 0;
try {
exif = new ExifInterface(mediaFile.getAbsolutePath());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION,
ExifInterface.ORIENTATION_UNDEFINED);
switch (orientation) {
case ExifInterface.ORIENTATION_NORMAL:
rotate = 0;
break;
case ExifInterface.ORIENTATION_ROTATE_270:
rotate = 270;
break;
case ExifInterface.ORIENTATION_ROTATE_180:
rotate = 180;
break;
case ExifInterface.ORIENTATION_ROTATE_90:
rotate = 90;
break;
}
Matrix matrix = new Matrix();
matrix.postRotate(rotate);
Bitmap rotateBitmap = Bitmap.createBitmap(scale, 0, 0, scale.getWidth(),
scale.getHeight(), matrix, true);
displayImage.setImageBitmap(rotateBitmap);
}
}
public static boolean isImage(String str) {
boolean temp = false;
String[] arr = { ".jpeg", ".jpg", ".png", ".bmp", ".gif" };
for (int i = 0; i < arr.length; i++) {
temp = str.endsWith(arr[i]);
if (temp) {
break;
}
}
return temp;
}
问题内容: 我正在尝试创建一个Rotatable ImageView,我将向其指定特定角度和枢轴点,并查看其围绕该枢轴点旋转。我尝试过这样的事情: 但是postRotate方法的参数(第二个和第三个-枢轴点)完全没有变化。即使它们是0、0,也一样。 所以我想创建一个ImageView,在初始化时将旋转一定角度。在此示例中为45度。我试图设置范围和人员..没有帮助。 我怎么做?:/ 问题答案: 您可
我正在构建一个应用程序,它依赖于显示从相机拍摄的许多位图图像。我希望所有图像都以90度(纵向)的方向显示,我知道如何使用每个图像提供的EXIF信息来实现这一点。在拍摄图像后立即旋转图像的位图以满足我的需要,然后将其发送到我的服务器,这对我来说是一个更好的主意,还是应该在不旋转图像的情况下将图像发送到我的服务器,然后每当我下拉图像时,使用图像附带的EXIF旋转来旋转我正在显示的图像视图?我需要一个高
我有一个ImageView,可以用鼠标拖放,点击按钮旋转90度。这两件事在独立完成时都可以工作(因此可以旋转或移动ImageView,而不是两者都可以)。当我旋转ImageView并尝试移动它时,它似乎是随机移动的。 我使用以下方法旋转图像视图: 这导致了我所说的看似随机的运动。 我还尝试使用以下方法旋转ImageView: 位置是图像在屏幕上的位置。宽度和高度是ImageView的宽度和高度。
所以我在图像视图上做了一些旋转和翻译。据我所知,图像视图并没有真正在任何一个位置之后,你必须在动画完成后将其实际移动到那里。所以我尝试移动的图像视图称为标记,它设置在其原始位置和有它的起始位置。移动或翻译后,我调用来处理移动或旋转。这似乎有一半的时间完成了预期的结果...不确定我做错了什么,但它与我想要的方式不一致。
我正在开发一个Android应用程序,其中的一部分功能是用户可以从他们的设备中选择一个图像,将其与列表中的特定项目相关联,并在应用程序中使用它。我的目的是将图像本身存储在内存中,并将图像的路径与项目的其余存储信息一起存储在SQLite数据库中。 我已经能够让用户选择图像并上传,但图像有时会根据图片的拍摄方式进行旋转。我试着查看Exif数据,但方向总是为零。我曾尝试使用光标来查看信息,但也无济于事。
问题内容: 我无法快速将图像旋转90度。我已经写了下面的代码,但是有一个错误并且无法编译 以下是我不确定的代码 问题答案: 这是针对 Swift 4.0 的扩展,可以仅旋转图像而无需。成功测试了图像已旋转,不仅更改了exif数据。 要执行180度旋转,您可以这样命名: 如果由于某种原因无法旋转,则将返回原始图像。