我花了几天时间研究这个问题,而我却无处可去。被他人接受为正确的事情根本就不适合我,而且他们使用的关键词通常都不存在。
我要做的就是让用户从图库中选择一张图片。我想将此选择存储为位图,转换图像的大小,然后将其保存到文件。
他们可以选择使用相机做同样的事情,这段代码完美无缺。不知道画廊为何如此困难。这是我的代码(从下面的行开始,由于某种原因不会添加到代码块):
if (requestCode == GALLERY_REQUEST && resultCode == RESULT_OK && null != data) {
final Context context=this;
Intent j=new Intent(context,PlayerSelection.class);
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
Uri selectedImageUri = data.getData();
String selectedImage = selectedImageUri.getPath();
Toast.makeText(getApplicationContext(), selectedImage, Toast.LENGTH_LONG).show();
String fName = new File(getFilesDir(), selectedImage).getAbsolutePath();
fName = fName + ".jpg";
Toast.makeText(getApplicationContext(), fName, Toast.LENGTH_LONG).show();
try {
Bitmap galleryTemp = MediaStore.Images.Media.getBitmap(this.getContentResolver(),selectedImageUri);
} catch (IOException e) {
e.printStackTrace();
}
//Bitmap galleryPic = Bitmap.createScaledBitmap(galleryTemp, 50, 50, false);
//saveImageFile(galleryTemp);
//startActivity(j);
}
我上面评论过的部分是应用失败的地方。当我获得文件的路径时,我被定向到 data \ data \ app.name \ files \ external \ images \ media \ 18630 , 但实际文件存在于** Phone \ DCIM \ Camera **
中我认为这就是问题所在,因为当我尝试操作或对图像(Bitmap galleryTemp)做任何事情时,应用程序崩溃了。
这是我用来调用上述过程的方法:
案例R.id.btnGallery:
Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(i, GALLERY_REQUEST);
break;
有什么想法吗?我几乎已经阅读了这个主题的所有内容,没有任何内容对我有用。
答案 0 :(得分:0)
这可能会对您有所帮助:
@Override
public void onAuthenticationFailure(HttpServletRequest request,
HttpServletResponse response, AuthenticationException exception)
throws IOException, ServletException {
if (LOG.isDebugEnabled()) {
LOG.debug("Error message set in threadlocal is :"
+ AuthErrorMsgThreadLocal.get());
}
// Login failed in Siteminder, so no threadlocal message
if (StringUtils.isEmpty(AuthErrorMsgThreadLocal.get())) {
request.getSession().setAttribute("AUTH_ERROR_MSG",
"Invalid Username or Password");
response.sendRedirect(request.getContextPath() + ERROR_REDIRECT_URL);
} else {
// in the event of an auth failure, get the specific error message
// from threadlocal
request.getSession().setAttribute("AUTH_ERROR_MSG",
AuthErrorMsgThreadLocal.get());
response.sendRedirect(request.getContextPath() + ERROR_REDIRECT_URL);
AuthErrorMsgThreadLocal.unset();
}
}
您必须从“媒体商店”获取路径。内容提供商,为您提供实际图像,缩略图等的路径。