我使用了Gallery和ViewPager小部件,我从Web服务中获取图像,但我无法将它们放在ViewPager中,但在Gallery中很容易.我在ViewPager中使用了这个教程 http://mobile.tutsplus.com/tutorials/android/android-user-interface-design-horizontal-view-paging/
我想要像ViewPager滚动一样的android Gallery小部件滚动,
这有可能,我该怎么办呢.
我在我的android应用程序中使用Gallery View.所有图像都来自url,所以我在GalleryView中使用LazyLoader进行图像加载.画廊完全填充.但它失去了图像质量..我想填充画廊没有图像质量丢失..请帮助我..
android lazy-loading image-gallery android-gallery image-quality
我正在制作的这个应用程序正在拍照并将其保存到SD卡但图片未显示在库中......我的代码是否有问题
public void takepicture(View view){
try{
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
//To store public files
File directory=new File(Environment.getExternalStorageDirectory()
, "Myapp Pictures");
if(!directory.exists())
directory.mkdir();
// Create an image file name
String timeStamp =
new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "Img" + timeStamp + ".jpg";
file=new File(directory, imageFileName);
if(!file.exists())
file.createNewFile();
}
}catch(Exception e){
e.getCause();
}
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
mImageUri=Uri.fromFile(file);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri);
startActivityForResult(takePictureIntent, actioncode);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == actioncode){
if((file.length())==0){
file.delete(); …Run Code Online (Sandbox Code Playgroud) android android-intent android-gallery android-imageview android-mediascanner
我创建了一个自定义列表界面.我正在使用数组适配器来管理列表视图单元格的按钮点击.我的一个按钮会打开一个对话框,显示设备的图库并允许他们选择图像.
在我的Adapters getView方法中,我有按钮的单击侦听器.当我选择图像时.onActivityResult我的Activity中的方法被调用.但我无法阅读intent.putExtras("id", id),因为它是作为阅读null的活动.这是我在我的方法中startActivityForResult调用的方法MainActivityListAdapter:
public void showExtraPicture(String imgStr, final String qid, String qname) {
ImageButton gallery = (ImageButton) dialog.findViewById(R.id.gallerybtn);
gallery.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("BIT: Qid: " + qid);
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
Bundle mBundle = new Bundle();
mBundle.putSerializable("qid", qid);
intent.putExtras(mBundle);
((Activity) QuestionListAdapter.this.context).startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
dialog.dismiss();
} // end method onClick
}); // end setOnClickListener
Run Code Online (Sandbox Code Playgroud)
}
我尝试过使用Bundle,putSerializable但这对我不起作用.我猜我的问题与我调用ArrayAdapter中的数据有关.
这是我onActivityResult …
抱歉问了一个愚蠢的问题。但它解决了我的问题。请帮助我在 stackoverflow 上尝试了所有代码并遵循其他教程,但它根本没有帮助。在相机上,但为什么它在 galary 上不起作用,我不知道请帮助我。;(
这是选择图像的代码
private void selectImage() {
final CharSequence[] items = { "Take Photo", "Choose from Library",
"Cancel" };
AlertDialog.Builder builder = new AlertDialog.Builder(TestFragment.this);
builder.setTitle("Add Photo!");
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
boolean result= Utility.checkPermission(TestFragment.this);
if (items[item].equals("Take Photo")) {
userChoosenTask ="Take Photo";
if(result)
cameraIntent();
} else if (items[item].equals("Choose from Library")) {
userChoosenTask ="Choose from Library";
if(result)
galleryIntent();
} else if (items[item].equals("Cancel")) {
dialog.dismiss();
}
}
});
builder.show();
}
Run Code Online (Sandbox Code Playgroud)
在这之后
private void …Run Code Online (Sandbox Code Playgroud) 当我尝试从相机或画廊获取图像时,我收到错误.这是logcat的一部分:
06-27 05:51:47.297: E/dalvikvm-heap(438): Out of memory on a 35295376-byte allocation.
06-27 05:51:47.312: E/dalvikvm(438): Out of memory: Heap Size=108067KB, Allocated=71442KB, Limit=131072KB
06-27 05:51:47.312: E/dalvikvm(438): Extra info: Footprint=108067KB, Allowed Footprint=108067KB, Trimmed=56296KB
06-27 05:51:47.312: E/PowerManagerService(438): Excessive delay when setting lcd brightness: mLcdLight.setBrightness(176, 1) spend 288ms, mask=2
06-27 05:51:48.052: E/dalvikvm-heap(4332): Out of memory on a 24023056-byte allocation.
06-27 05:51:48.057: E/dalvikvm(4332): Out of memory: Heap Size=63139KB, Allocated=40922KB, Limit=65536KB
06-27 05:51:48.057: E/dalvikvm(4332): Extra info: Footprint=63139KB, Allowed Footprint=63139KB, Trimmed=0KB
06-27 05:51:48.057: E/EmbeddedLogger(438): App crashed! Process: <my_app_name> …Run Code Online (Sandbox Code Playgroud) 我有一个Android应用程序,可让您使用图库的意图在手机上打开图像。您对该图像进行修改,然后应用将其以新名称保存在原始图像所在的文件夹中。由于图库不能一直在寻找新图像,因此有任何方法可以从我的画廊中通知新图像Android应用程序,以便下次用户打开图库时显示?
使用此配方尝试从库中选择一个图像,然后将其上传到s3,但我的路径始终返回null.
private string _imgPath;
public void InitializeMediaPicker()
{
Intent = new Intent();
Intent.SetType("image/*");
Intent.SetAction(Intent.ActionGetContent);
StartActivityForResult(Intent.CreateChooser(Intent, "Select Picture"), 1000);
}
public string GetImage()
{
InitializeMediaPicker();
return _imgPath;
}
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
if ((requestCode != 1000) || (resultCode != Result.Ok) || (data == null)) return;
var uri = data.Data;
_imgPath = GetPathToImage(uri);
}
private string GetPathToImage(Android.Net.Uri uri)
{
string path = null;
// The projection contains the columns we want to return in our query. …Run Code Online (Sandbox Code Playgroud) android android-gallery xamarin.android xamarin xamarin.forms
我一直在尝试从这个应用程序中的图库中获取图像,然后在按钮上单击我要上传到我的PHP服务器.
"selectedImagePath"为null为什么?如果有人有解决方案,请帮助我!提前致谢.
img = (ImageView) findViewById(R.id.ImageView01);
Button browse = (Button) findViewById(R.id.Button01);
browse.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_PICTURE);
}
});
Run Code Online (Sandbox Code Playgroud)
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
selectedImageUri = data.getData();
System.out.println(selectedImageUri);
selectedImagePath = getPath(selectedImageUri);//returns as null
System.out.println("Image Path : " + selectedImagePath);
img.setImageURI(selectedImageUri);
}
}
}
Run Code Online (Sandbox Code Playgroud)
public String getPath(Uri uri) {
String[] …Run Code Online (Sandbox Code Playgroud) 目前
我打开与画廊Intent,用户可以接着从后将该文件复制到指定文件夹的画廊视频.一切正常.
我希望ProgressBar在用户选择视频(在图库中)之后显示一个权限,然后progresbar.dismiss在文件完成复制后显示.
这是类似的问题,但没有答案(没有任何效果):
这就是我称之为画廊的方式:
public void selectVideoFromGallery()
{
Intent intent;
if(android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
{
intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
}
else
{
intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Video.Media.INTERNAL_CONTENT_URI);
}
intent.setType("video/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.putExtra("return-data", true);
startActivityForResult(intent,SELECT_VIDEO_REQUEST);
}
Run Code Online (Sandbox Code Playgroud)
我在progressbar.show();这里试过(上图),但显然它会在选择视频之前开始显示.
这是我的OnActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(requestCode == SELECT_VIDEO_REQUEST && resultCode == RESULT_OK)
{
if(data.getData()!=null)
{
//copy file to new folder
Uri selectedImageUri = data.getData();
String sourcePath = getRealPathFromURI(selectedImageUri); …Run Code Online (Sandbox Code Playgroud)