- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了 CircleImageView 的问题从图库中选择图像或从相机中拍摄照片后,它显示黑色图像,它在 lolipop 中工作得很好,但在 kitkat 版本中出现了这个问题
这是我的代码
我的 xml ImageView
<refractored.controls.CircleImageView
android:id="@+id/storeImage"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/misr_pharmacy"
/>
我的C#代码
private void ChooseImage()
{
String[] items = { "Take Photo", "Choose from Library", "Cancel" };
using (var dialogBuilder = new AlertDialog.Builder(this))
{
dialogBuilder.SetTitle("Add Photo");
dialogBuilder.SetItems(items, (d, args) => {
//Take photo
if (args.Which == 0)
{
if ((int)Build.VERSION.SdkInt >= 23)
{
if (!marshMallowPermission.checkPermissionForWriteExternalStorage())
{
bool _ShouldShowRequest = ShouldShowRequestPermissionRationale(PublicKeys.WriteExternalStoragePermission);
marshMallowPermission.requestPermissionForWriteExternalStorage(_ShouldShowRequest);
}
}
dispatchTakePictureIntent();
}
//Choose from gallery
else if (args.Which == 1)
{
if ((int)Build.VERSION.SdkInt >= 23)
{
if (!marshMallowPermission.checkPermissionForReadExternalStorage())
{
bool _ShouldShowRequest = ShouldShowRequestPermissionRationale(PublicKeys.ReadExternalStoragePermission);
marshMallowPermission.requestPermissionForReadExternalStorage(_ShouldShowRequest);
}
}
dispatchChoosePictureIntent();
}
});
dialogBuilder.Show();
}
}
private void dispatchTakePictureIntent()
{
var takePictureIntent = new Intent(MediaStore.ActionImageCapture);
File photoFile = null;
try
{
photoFile = FileUtils.createImageFile();
currentFilePath = "file:" + photoFile.AbsolutePath;
}
catch (Exception e)
{
return;
}
if (photoFile != null && takePictureIntent.ResolveActivity(PackageManager) != null)
{
takePictureIntent.PutExtra(MediaStore.ExtraOutput, Android.Net.Uri.FromFile(photoFile));
this.StartActivityForResult(takePictureIntent, REQUEST_CAMERA);
}
}
private void dispatchChoosePictureIntent()
{
var intent = new Intent(Intent.ActionPick, MediaStore.Images.Media.ExternalContentUri);
intent.SetType("image/*");
this.StartActivityForResult(Intent.CreateChooser(intent, "Select Picture"), SELECT_FILE);
}
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
if (resultCode == Result.Ok)
{
if (requestCode == REQUEST_CAMERA)
{
// Handle the newly captured image
Android.Net.Uri imageUri = Android.Net.Uri.Parse(currentFilePath);
iv_profileImage.SetImageURI(imageUri);
}
else if (requestCode == SELECT_FILE)
{
// Handle the image chosen from gallery
string selectedImagePath = FileUtils.GetPath(this, data.Data);
iv_profileImage.SetImageURI(Android.Net.Uri.FromFile(new File (selectedImagePath)));
}
}
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
{
switch (requestCode)
{
case PublicKeys.WRITE_EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE:
{
if (grantResults[0] == Permission.Granted)
{
//Permission granted
Snackbar.Make(layout, "camera permission is available", Snackbar.LengthShort).Show();
dispatchTakePictureIntent();
}
else
{
//Permission Denied :(
//Disabling functionality
Snackbar.Make(layout, GetString(Resource.String.camera_permission_denied), Snackbar.LengthShort).Show();
}
}
break;
case PublicKeys.READ_EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE:
{
if (grantResults[0] == Permission.Granted)
{
//Permission granted
var snack = Snackbar.Make(layout, "camera permission is available", Snackbar.LengthShort);
snack.Show();
dispatchChoosePictureIntent();
}
else
{
//Permission Denied :(
//Disabling functionality
var snack = Snackbar.Make(layout, "Camera permission is denied.", Snackbar.LengthShort);
snack.Show();
}
}
break;
}
}
我的助手类创建文件
public static File createImageFile()
{
//create an image file name
string timeStamp = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
string imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = Android.OS.Environment.GetExternalStoragePublicDirectory(
Android.OS.Environment.DirectoryPictures);
File image = File.CreateTempFile(
imageFileName,
".jpg",
storageDir
);
// Save a file: path for use with ACTION_VIEW intents
return image;
}
public static string GetPath (Context context , Android.Net.Uri uri)
{
bool isKitKat = Build.VERSION.SdkInt >= BuildVersionCodes.Kitkat;
// DocumentProvider
if (isKitKat && DocumentsContract.IsDocumentUri(context, uri))
{
// ExternalStorageProvider
if (isExternalStorageDocument(uri))
{
string docId = DocumentsContract.GetDocumentId(uri);
string[] split = docId.Split(':');
string type = split[0];
if (string.Equals("primary" , type , StringComparison.OrdinalIgnoreCase))
{
return Android.OS.Environment.ExternalStorageDirectory + "/" + split[1];
}
// TODO handle non-primary volumes
}
// DownloadsProvider
else if (isDownloadsDocument(uri))
{
string id = DocumentsContract.GetDocumentId(uri);
Android.Net.Uri contentUri = ContentUris.WithAppendedId(
Android.Net.Uri.Parse("content://downloads/public_downloads"), long.Parse(id));
return getDataColumn(context, contentUri, null, null);
}
// MediaProvider
else if (isMediaDocument(uri))
{
string docId = DocumentsContract.GetDocumentId(uri);
string[] split = docId.Split(':' );
string type = split[0];
Android.Net.Uri contentUri = null;
if ("image".Equals(type))
{
contentUri = MediaStore.Images.Media.ExternalContentUri;
}
else if ("video".Equals(type))
{
contentUri = MediaStore.Video.Media.ExternalContentUri;
}
else if ("audio".Equals(type))
{
contentUri = MediaStore.Audio.Media.ExternalContentUri;
}
string selection = "_id=?";
string[] selectionArgs = new string[] {
split[1]
};
return getDataColumn(context, contentUri, selection, selectionArgs);
}
}
// MediaStore (and general)
else if (string.Equals("content" , uri.Scheme , StringComparison.OrdinalIgnoreCase))
{
return getDataColumn(context, uri, null, null);
}
// File
else if (string.Equals("file", uri.Scheme, StringComparison.OrdinalIgnoreCase))
{
return uri.Path;
}
return null;
}
/**
* Get the value of the data column for this Uri. This is useful for
* MediaStore Uris, and other file-based ContentProviders.
*
* @param context The context.
* @param uri The Uri to query.
* @param selection (Optional) Filter used in the query.
* @param selectionArgs (Optional) Selection arguments used in the query.
* @return The value of the _data column, which is typically a file path.
*/
public static string getDataColumn(Context context, Android.Net.Uri uri, string selection,
string[] selectionArgs)
{
ICursor cursor = null;
string column = "_data";
string[] projection = {
column
};
try
{
cursor = context.ContentResolver.Query(uri, projection, selection, selectionArgs,
null);
if (cursor != null && cursor.MoveToFirst())
{
int column_index = cursor.GetColumnIndexOrThrow(column);
return cursor.GetString(column_index);
}
}
finally
{
if (cursor != null)
cursor.Close();
}
return null;
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is ExternalStorageProvider.
*/
public static bool isExternalStorageDocument(Android.Net.Uri uri)
{
return "com.android.externalstorage.documents".Equals(uri.Authority);
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is DownloadsProvider.
*/
public static bool isDownloadsDocument(Android.Net.Uri uri)
{
return "com.android.providers.downloads.documents".Equals(uri.Authority);
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is MediaProvider.
*/
public static bool isMediaDocument(Android.Net.Uri uri)
{
return "com.android.providers.media.documents".Equals(uri.Authority);
}
最佳答案
不要乱用 GetData()
来构造另一个 uri。
您已经有一个 uri!
直接使用iv_profileImage.SetImageURI(data.Data);
。
关于c# - xamarin - ImageView 在从画廊的相机拍摄照片后显示黑色图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41462315/
#include using namespace std; class C{ private: int value; public: C(){ value = 0;
这个问题已经有答案了: What is the difference between char a[] = ?string?; and char *p = ?string?;? (8 个回答) 已关闭
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 7 年前。 此帖子已于 8 个月
除了调试之外,是否有任何针对 c、c++ 或 c# 的测试工具,其工作原理类似于将独立函数复制粘贴到某个文本框,然后在其他文本框中输入参数? 最佳答案 也许您会考虑单元测试。我推荐你谷歌测试和谷歌模拟
我想在第二台显示器中移动一个窗口 (HWND)。问题是我尝试了很多方法,例如将分辨率加倍或输入负值,但它永远无法将窗口放在我的第二台显示器上。 关于如何在 C/C++/c# 中执行此操作的任何线索 最
我正在寻找 C/C++/C## 中不同类型 DES 的现有实现。我的运行平台是Windows XP/Vista/7。 我正在尝试编写一个 C# 程序,它将使用 DES 算法进行加密和解密。我需要一些实
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
有没有办法强制将另一个 窗口置于顶部? 不是应用程序的窗口,而是另一个已经在系统上运行的窗口。 (Windows, C/C++/C#) 最佳答案 SetWindowPos(that_window_ha
假设您可以在 C/C++ 或 Csharp 之间做出选择,并且您打算在 Windows 和 Linux 服务器上运行同一服务器的多个实例,那么构建套接字服务器应用程序的最明智选择是什么? 最佳答案 如
你们能告诉我它们之间的区别吗? 顺便问一下,有什么叫C++库或C库的吗? 最佳答案 C++ 标准库 和 C 标准库 是 C++ 和 C 标准定义的库,提供给 C++ 和 C 程序使用。那是那些词的共同
下面的测试代码,我将输出信息放在注释中。我使用的是 gcc 4.8.5 和 Centos 7.2。 #include #include class C { public:
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我的客户将使用名为 annoucement 的结构/类与客户通信。我想我会用 C++ 编写服务器。会有很多不同的类继承annoucement。我的问题是通过网络将这些类发送给客户端 我想也许我应该使用
我在 C# 中有以下函数: public Matrix ConcatDescriptors(IList> descriptors) { int cols = descriptors[0].Co
我有一个项目要编写一个函数来对某些数据执行某些操作。我可以用 C/C++ 编写代码,但我不想与雇主共享该函数的代码。相反,我只想让他有权在他自己的代码中调用该函数。是否可以?我想到了这两种方法 - 在
我使用的是编写糟糕的第 3 方 (C/C++) Api。我从托管代码(C++/CLI)中使用它。有时会出现“访问冲突错误”。这使整个应用程序崩溃。我知道我无法处理这些错误[如果指针访问非法内存位置等,
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我有一些 C 代码,将使用 P/Invoke 从 C# 调用。我正在尝试为这个 C 函数定义一个 C# 等效项。 SomeData* DoSomething(); struct SomeData {
这个问题已经有答案了: Why are these constructs using pre and post-increment undefined behavior? (14 个回答) 已关闭 6
我是一名优秀的程序员,十分优秀!