Articles of android gallery

从内置存储Android手机上的画廊获取图像

您好我正在开发一个Android画廊应用程序,我从内置画廊获取图像,并显示它。我使用的代码如下 String[] projection = {MediaStore.Images.Thumbnails._ID}; Cursor cursor = getContentResolver().query(MediaStore.Images.Thumbnails.INTERNAL_CONTENT_URI, projection, // Which columns to return null, // Return all rows null, null); int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID); int size = cursor.getCount(); // If size is 0, there are no images on the SD Card. if (size == 0) { Log.e("size 0","0"); } 问题是,当我只有内部存储(Galaxy Nexus)的电话上运行此代码时,我得到的日志说,大小为零,即使有内置图库中的图像。 我如何解决这个问题。 请帮助。谢谢!

Android:.nomedia被忽略,图片仍然出现在画廊上

我正在构build一个应用程序,从网上下载图像,并将它们存储到我的SDCard中,以使它们在库中不可见,我把这一行生成一个.nomedia文件: FileWriter f = new FileWriter("/sdcard/Android/data/CopyImage/cache/.nomedia"); 应用程序可以成功下载图像,并使.nodata文件在同一个文件夹,但事情是,图像仍然出现在画廊上。 那怎么可能? 任何人都可以为我提供解决scheme吗? 非常感谢你

使Android图库中的图像文件在棒棒糖上可见

我正在尝试在应用程序中显示一些图片(可以在应用程序外部进行共享和查看),但是我想将图片自己保存在应用程序的数据目录中,以便应用程序被删除,所以他们被保存在“{sdcard} / Android / data / {appID} / Pictures / {subfolder} /” )。 我已经看了很多的答案和Android的旧版本,以下解决scheme的工作,但他们似乎并不工作在棒棒糖: MediaScannerConnection.scanFile(this, new String[]{file.toString()}, new String[] { "image/jpeg" }, new MediaScannerConnection.OnScanCompletedListener() { public void onScanCompleted(String path, Uri uri) { Log.i("ExternalStorage", "Scanned " + path + ":"); Log.i("ExternalStorage", "-> uri=" + uri); } }); Uri contentUri = Uri.fromFile(file); Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,contentUri); […]

在Android中打开图库应用程序

我试图打开内置的图库应用程序按下我的应用程序中的button。 我正在试用Android 2.3及以上的手机。 我拥有的手机/平板电脑是 三星S(Android 2.3.5)LG手机(Android 2.3.3)Nexus One(Android 2.3.6)Android平板电脑(Android 4.0.3)Galaxy Nexus(Android 4.3) 我尝试了以下内容: Intent intent = new Intent(Intent.ACTION_VIEW, null); intent.setType("image/*"); startActivity(intent); 上面的代码在Android平板电脑(4.0.3)和我的Nexus手机上也能正常工作..但是,如果在低于3.0的任何手机上运行相同的应用程序(给我错误) 08-24 11:47:53.628: E/AndroidRuntime(787): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) 08-24 11:47:53.628: E/AndroidRuntime(787): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 08-24 11:47:53.628: E/AndroidRuntime(787): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 08-24 11:47:53.628: E/AndroidRuntime(787): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 08-24 11:47:53.628: E/AndroidRuntime(787): at android.os.Handler.dispatchMessage(Handler.java:99) 08-24 11:47:53.628: E/AndroidRuntime(787): at android.os.Looper.loop(Looper.java:130) 08-24 11:47:53.628: E/AndroidRuntime(787): […]

同时运行animation和图像切换器

我试图在一段时间后从animation列表中运行图像,但我也在画面的顶部添加了画廊,从那里用户可以select任何图像,它会显示,我已经创build的线程将五秒钟后再次开始animation。我的代码是: int imgs[] = { R.drawable.mashad_one, R.drawable.mashad_two, R.drawable.mashad_three, R.drawable.mashad_four, R.drawable.mashad_five, R.drawable.mashad_six, R.drawable.mashad_seven, }; int i=0,flag=0; ImageSwitcher imgBus; AnimationDrawable animation; Handler mHandler = new Handler(); void func() { imgBus.setFactory(this); } @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.dutyfree); ActionBar bar = getActionBar(); bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#FF6600"))); // Declare object of Utils class; Gallery gallery = […]

与文件夹filter的画廊

我正在使用下面的代码来打开我的应用程序内的画廊 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(intent, FIND_RESULT); 是否可以限制图像列表只显示相机拍摄的图像? 在我的2.1系统上查看图库,图像被分组,所以必须有一个参数来定义它属于哪个文件夹。 检查MediaStore.Images.ImageColumns我没有find任何列来定义这样的事情。 我可以错了吗? 因为如果我可以创build一个查询按文件夹过滤,并创build我自己的画廊视图,那么我的问题将被解决。

如何从图库中隐藏照片并将其存储在我的应用程序中

我正在开发一个Android应用程序,它将从画廊中select一些照片并隐藏它们, 我能够从画廊中select特定的图片,并将其存储在我的应用程序,并从画廊中删除,但是一个人可以看到这些图片,如果他打开我的应用程序文件夹在SD卡,所以我如何存储,即使一个人检查我的SD卡,那么他不应该能够检测到这些图片?

图片来自Android 6中的图库(棉花糖)

在我的应用程序中,我试图从厨房中挑选图像,以便将该图像传递给服务器。 代码在Android 5及更低版本上工作正常,但是Nexus 5上的Android 6无法获取图像信息。 我得到的日志跟踪 注意 :代码在Android 5及以下版本上工作正常 11-06 12:27:43.736: W/System.err(31678): java.lang.SecurityException: Permission Denial: reading com.google.android.apps.photos.contentprovider.MediaContentProvider uri content://com.google.android.apps.photos.contentprovider/0/1/content%3A//media/external/images/media/19138/ACTUAL/94710853 from pid=31678, uid=10111 requires the provider be exported, or grantUriPermission() 11-06 12:27:43.757: W/System.err(31678): at android.os.Parcel.readException(Parcel.java:1599) 11-06 12:27:43.757: W/System.err(31678): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183) 11-06 12:27:43.757: W/System.err(31678): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135) 11-06 12:27:43.757: W/System.err(31678): at android.content.ContentProviderProxy.query(ContentProviderNative.java:421) 11-06 12:27:43.757: W/System.err(31678): at android.content.ContentResolver.query(ContentResolver.java:491) 11-06 […]

滚动图库可启用按下状态,并从子项目中删除点击侦听器

我有一个相当复杂的画廊。 每个项目由一个图像和2个button组成。 当画廊加载一切工作,button做他们应该的,button的按下状态只发生在button的实际按下。 然而,只要我滚animation廊,button停止工作,点击任何地方启用button的按下状态。 我已经尝试在一个LinearLayout中embedded一切,但不会按照这个答案传递OnDown事件,但是,这只是阻止点击事件。 我知道Gallery不是像这样的复杂布局的理想小部件,但我想知道是否有一个更好的解决方法,这个问题。 更新: 我会试着解释一下这个架构。 我有一个FragmentActivity,其中包含一个ListFragment,它由一个ListView组成。 ListView由一些较小的元素组成(Bettable)以及一些元信息。 这些小组是作为Gallerys实施的。 具体来说,我已经扩展了Gallery(称为OneGallery),它可以做几件事情,它确保一次只滚动一个项目,并在滚动发生时转换图库项目。 这是这个代码 这是Gallery的适配器 这里是Bettable布局的代码

为Gallery中的元素设置布局参数

我正在使用Gallery来显示事件的水平时间线。 一些事件得到Gravity.TOP和一些Gravity.BOTTOM来alignment它们上面或下面的一个很好的线显示年。 到现在为止还挺好。 我想改变顶部元素的左边界属性,所以没有巨大的差距,元素看起来是交错的。 例如:为每个排列在顶部的元素设置负的左边距。 Gallery每个元素都包含一个LinearLayout ,可以通过设置MarginLayoutParams实例来以编程方式更改边距。 但是,当在适配器中使用MarginLayoutParams时,我得到一个ClassCastException ,因为Gallery代码执行以下操作: // Respect layout params that are already in the view. Otherwise // make some up… Gallery.LayoutParams lp = (Gallery.LayoutParams) child.getLayoutParams(); 任何想法或提示如何克服这个问题?