这里有很多类似的话题和问题,我将遵循这些。但我有一个错误。
我的代码
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == 1) {
//h=0;
File f = new File(Environment.getExternalStorageDirectory().toString());
for (File temp : f.listFiles()) {
if (temp.getName().equals("temp.jpg")) {
f = temp;
File photo = new File(Environment.getExternalStorageDirectory(), "temp.jpg");
//pic = photo;
break;
}
}
try {
Bitmap bitmap;
BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapOptions.inJustDecodeBounds = false;
bitmapOptions.inPreferredConfig = Bitmap.Config.RGB_565;
bitmapOptions.inDither = true;
bitmap = BitmapFactory.decodeFile(f.getAbsolutePath(), bitmapOptions);
Global.img = bitmap;
b.setImageBitmap(bitmap);
String path = android.os.Environment.getExternalStorageDirectory() + File.separator + "Phoenix" + File.separator + "default";
//p = path;
f.delete();
OutputStream outFile = null;
File file = new File(path, String.valueOf(System.currentTimeMillis()) + ".jpg");
try {
outFile = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 85, outFile);
//pic=file;
outFile.flush();
outFile.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
} else if (requestCode == 2) {
Uri selectedImage = data.getData();
// h=1;
//imgui = selectedImage;
String[] filePath = {MediaStore.Images.Media.DATA};
Cursor c = getContentResolver().query(selectedImage, filePath, null, null, null);
c.moveToFirst();
int columnIndex = c.getColumnIndex(filePath[0]);
String picturePath = c.getString(columnIndex);
c.close();
Bitmap thumbnail = (BitmapFactory.decodeFile(picturePath));
Log.w("path of image ******", picturePath + "");
b.setImageBitmap(thumbnail);
}
}
else
{
finish();
}
}
在遵循教程之后,我将代码更改为
try {
Bitmap bitmap;
BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapOptions.inJustDecodeBounds = false;
bitmapOptions.inPreferredConfig = Bitmap.Config.RGB_565;
bitmapOptions.inDither = true;
bitmap = BitmapFactory.decodeFile(f.getAbsolutePath(), bitmapOptions);
BitmapFactory.Options opts = new BitmapFactory.Options();
Bitmap bm = BitmapFactory.decodeFile(f.getAbsolutePath(), opts);
ExifInterface exif = new ExifInterface(f.getAbsolutePath());
String orientString = exif.getAttribute(ExifInterface.TAG_ORIENTATION);
int orientation = orientString != null ? Integer.parseInt(orientString) : ExifInterface.ORIENTATION_NORMAL;
int rotationAngle = 0;
if (orientation == ExifInterface.ORIENTATION_ROTATE_90) rotationAngle = 90;
if (orientation == ExifInterface.ORIENTATION_ROTATE_180) rotationAngle = 180;
if (orientation == ExifInterface.ORIENTATION_ROTATE_270) rotationAngle = 270;
Matrix matrix = new Matrix();
matrix.setRotate(rotationAngle, (float) bm.getWidth() / 2, (float) bm.getHeight() / 2);
Bitmap rotatedBitmap = Bitmap.createBitmap(bm, 0, 0, bitmapOptions.outWidth, bitmapOptions.outHeight, matrix, true);
Global.img = bitmap;
b.setImageBitmap(bitmap);
String path = android.os.Environment
.getExternalStorageDirectory()
+ File.separator
+ "Phoenix" + File.separator + "default";
//p = path;
f.delete();
OutputStream outFile = null;
File file = new File(path, String.valueOf(System.currentTimeMillis()) + ".jpg");
下面得到一条红线(bm,0,0,bitmapOptions.outWidth,bitmapOptions.outHeight,matrix,true)
(无法解析方法createBitmap)
*********编辑*********
导入
应用程序崩溃。android之后。图样矩阵
而不是android。opengl。Matrix,
LogCat错误
Process: com.example.project.project, PID: 13045
java.lang.OutOfMemoryError
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:928)
at android.graphics.Bitmap.createBitmap(Bitmap.java:901)
at android.graphics.Bitmap.createBitmap(Bitmap.java:833)
at com.example.project.project.ImageFitScreen.onActivityResult(ImageFitScreen.java:236)
at android.app.Activity.dispatchActivityResult(Activity.java:5643)
这是236号线
Bitmap rotatedBitmap = Bitmap.createBitmap(bm, 0, 0, bitmapOptions.outWidth, bitmapOptions.outHeight, matrix, true);
我猜你导入了错误的矩阵类,你应该导入android.graphics.矩阵,而不是android.opengl.矩阵,请仔细检查。
更改为此位图旋转位图=位图。创建位图(bm,0,0,bm.getWidth(),bm.getHeight(),矩阵,true);
问题内容: 有相当多的类似的题目和问题在这里,我跟着这个。但是我得到了错误。 我的密码 遵循本教程之后,我将代码更改为 无法解析matrix.setRotate中的setRotate。 我在下面显示一条红线(无法解析方法createBitmap) *编辑* 在我导入而不是应用程序崩溃之后。 LogCat错误 这是第236行 问题答案: 更改为此位图;
我想在一个容器中显示许多图像,但如果图像是横向的,它还不错,但如果图像是纵向的,当我插入它时,它会显示拉伸。它显示每一张图片景观,它不漂亮。我想显示每个图像,因为它的原始方向和容器的最大高度为415px。这是我的输出:风景图像纵向图像请帮助这是我的代码。
我正在开发一个应用程序,当设备方向关闭时,我在横向模式下拍摄图像。我正在使用GPUImageStillCamera拍摄图像。但我在图像的旋转中遇到了问题。问题是,当我在关闭设备旋转的情况下以横向模式拍摄图像并保存在gallery中,然后打开设备旋转,图像必须随设备方向旋转。但是,当以纵向模式握住设备时,图像处于横向,如果将设备置于横向,图像旋转是向上向下的。 笔记 当设备旋转打开时,图像旋转效果非
我使用Owl Carousel在带有Javascript和jQuery的Carousel中显示图像。我有肖像和风景图片,还有CSS: 横向图像遵守宽度的100%限制,全图显示在屏幕上;肖像图像不符合100%的高度限制,图片显示在一个或两个屏幕上,需要向下滚动。我希望纵向图片能够调整大小,并在横向屏幕上完全显示,就像我希望横向图片能够在纵向屏幕上完全显示一样。 我用CSS尝试了最大高度和最大宽度的解
Mac OSX Netbeans JAVA 目标:21点程序…我正在尝试将扑克牌的图像图标显示在JLabel中 逻辑:我创建了一些CARD对象,用一个方法返回与之相关的imageIcon。在我的主GUI类中,如果我创建新的imageIcon来指定文件位置,它就会工作 注释掉的行工作正常,显示imageIcon图像,但是当我使用card1.getImage()方法时,图像不显示。方法很简单- 此外,
我是新的Android和建立一个小应用程序,从相机拍照,并保存到画廊。 下面是捕获图像的函数。 这是我们的主要活动。xml 当图像被捕获时,我想在另一个活动(页面)上显示图像,而不是在具有捕获图像按钮的同一活动上。如何做到这一点。 提前谢谢