标签: android-gallery

Android:.nomedia被忽略,图片仍然出现在图库中

我正在构建一个从Web下载图像并将它们存储到我的SD卡中的应用程序,为了使它们在库中不可见,我将这一行生成一个.nomedia文件:

FileWriter f = new FileWriter("/sdcard/Android/data/CopyImage/cache/.nomedia");
Run Code Online (Sandbox Code Playgroud)

应用程序可以成功下载图像并将.nodata文件放在同一个文件夹中,但事实是,图像仍然出现在图库中.

怎么会这样?任何人都可以为我提供解决方案吗?

非常感谢你

android android-sdcard android-gallery

10
推荐指数
2
解决办法
2万
查看次数

设置图库中元素的布局参数

我用a Gallery来显示事件的水平时间轴.有些事件可以得到Gravity.TOP,有些Gravity.BOTTOM可以将它们对齐在显示年份的漂亮线上方或下方.到现在为止还挺好.

我想更改顶部元素的左边距属性,因此没有巨大的间隙,元素看起来是交错的.例如:为每个在顶部对齐的元素设置负左边距.

每个元素都Gallery包含在a上LinearLayout,可以设置一个MarginLayoutParams实例来以编程方式更改边距.但是,我在适配器内部ClassCastException使用时MarginLayoutParams因为Gallery代码执行此操作:

    // Respect layout params that are already in the view. Otherwise
    // make some up...
    Gallery.LayoutParams lp = (Gallery.LayoutParams) child.getLayoutParams();
Run Code Online (Sandbox Code Playgroud)

关于如何克服这个问题的任何想法或提示?

android android-gallery android-layout

9
推荐指数
1
解决办法
6327
查看次数

获取Gallery中显示的当前图像的位置

在我的应用程序中,我有一个图片库,

但我想检测当前显示的图像的位置,

例如:当我启动我的acvitivity时,位置为0,但是当我在我的画廊中滚动时,我想获得显示当前图像的位置,

我试过OnFocusChanged,OnItemClicked,但只有当我点击我的画廊的一个项目时才有效

有任何想法吗 !:(

android android-widget android-ui android-gallery

9
推荐指数
3
解决办法
7964
查看次数

从Android 3.0版开始,Gallery onItemClick和onTouchEvent无法一起使用

我有一个Gallery,它有一个OnItemSelectedListener和一个OnItemClickListener.所以我可以在图片之间移动,如果我点击一个,会发生其他事情(取决于我点击了哪些).它在版本3.0之前运行良好,但在处理onItemClick事件后从那里(3.0-4.0),会发生致命异常:

12-07 18:46:03.008: E/AndroidRuntime(935): FATAL EXCEPTION: main
12-07 18:46:03.008: E/AndroidRuntime(935): java.lang.NullPointerException
12-07 18:46:03.008: E/AndroidRuntime(935):  at android.view.GestureDetector.onTouchEvent(GestureDetector.java:587)
12-07 18:46:03.008: E/AndroidRuntime(935):  at android.widget.Gallery.onTouchEvent(Gallery.java:937)
12-07 18:46:03.008: E/AndroidRuntime(935):  at android.view.View.dispatchTouchEvent(View.java:5462)
12-07 18:46:03.008: E/AndroidRuntime(935):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1947)
12-07 18:46:03.008: E/AndroidRuntime(935):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1708)
12-07 18:46:03.008: E/AndroidRuntime(935):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1953)
12-07 18:46:03.008: E/AndroidRuntime(935):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1722)
12-07 18:46:03.008: E/AndroidRuntime(935):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1953)
12-07 18:46:03.008: E/AndroidRuntime(935):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1722)
12-07 18:46:03.008: E/AndroidRuntime(935):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1953)
12-07 18:46:03.008: E/AndroidRuntime(935):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1722)
12-07 18:46:03.008: E/AndroidRuntime(935):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1953)
12-07 18:46:03.008: E/AndroidRuntime(935):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1722)
12-07 18:46:03.008: E/AndroidRuntime(935):  at …
Run Code Online (Sandbox Code Playgroud)

android gallery nullpointerexception android-gallery onitemclicklistener

9
推荐指数
1
解决办法
1198
查看次数

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

我有一个相当复杂的项目库.每个项目由图像和2个按钮组成.当画廊加载一切正常时,按钮按照预期进行操作,按钮的按下状态仅在实际按下按钮时发生.

但是,只要我滚动图库,按钮就会停止工作,单击任意位置会启用按钮的按下状态.

我已经尝试将所有内容嵌入到LinearLayout中,但是根据这个答案没有传递OnDown事件,但这只会阻止点击事件.

我知道Gallery不是这种复杂布局的理想小部件,但我想知道是否有更好的解决方法来解决这个问题.

更新:

我会尝试解释一下这个架构.我有一个FragmentActivity,它包含一个ListFragment,它只由一个ListView组成.

ListView由较小元素组(Bettable)和一些元信息组成.这些组实现为Gallerys.具体来说,我有扩展的Gallery(称为OneGallery),它做了几件事,它确保一次只滚动一个项目,并在滚动发生时转换图库项目.这是代码

这是Gallery的适配器

这是Bettable布局的代码

android listview scrollview android-gallery

9
推荐指数
1
解决办法
797
查看次数

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

我正在开发一个Android应用程序,它将从库中选择一些照片并隐藏它们,

我可以从图库中选择特定的图片并将其存储在我的应用程序中并从图库中删除它,但是如果他在sdcard中打开我的应用程序文件夹,那么一个人可以看到这些图片,所以我如何存储它们以便即使一个人检查我的SD卡然后他应该无法检测到那些照片?

android android-gallery android-image

9
推荐指数
2
解决办法
1万
查看次数

如何在android中制作带图像的自定义网格?

我想制作一个custom grid我们通常在Android手机中看到的图像

在此输入图像描述

我一直在搜索它几个小时.但没有运气好处,最后我试图在这里提问.有人可以建议我如何实现这种gridview.或者我是否需要遵循任何其他方法?

android android-gallery android-gridview android-gridlayout

9
推荐指数
1
解决办法
1040
查看次数

[Android - Kitkat]以编程方式从Android的内置Gallery应用程序中获取/选择图像

尝试从SD卡中只选择一个特定的图像.我能够从kikat中的图库和照片应用程序中选择图像.但是当我从最近选择图像时没有获取文件路径我将文件路径视为空.

我试过/sf/answers/184557691/.

android android-ui android-gallery

9
推荐指数
1
解决办法
1万
查看次数

从图库中选取一张照片并在图像视图中显示

我有一个应用程序,它有一个按钮,可以从您的图库中选择一张照片并且工作正常,选择图像后,我的应用程序显示回到活动并在图像视图中显示图像.

每个都工作正常,但有时,当我选择一些特定的图像时,预览没有显示.我也试图压缩图像仍然无法正常工作

我的代码在下面.. onCreate()

galeryBtn=(Button)findViewById(R.id.buttonGallery);
galeryBtn.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
      Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
      startActivityForResult(i, RESULT_LOAD_IMAGE);

    }
});
Run Code Online (Sandbox Code Playgroud)

在onActivityResult中(int requestCode,int resultCode,Intent data)

if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
    Uri selectedImage = data.getData();
    String[] filePathColumn = { MediaStore.Images.Media.DATA };

    Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
    cursor.moveToFirst();

    int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
    String picturePath = cursor.getString(columnIndex);
    cursor.close();
    // String picturePath contains the path of selected Image

    // Show …
Run Code Online (Sandbox Code Playgroud)

android image android-gallery

8
推荐指数
2
解决办法
2万
查看次数

在Lollipop上的Android图库中显示图像文件

我正在尝试制作一些在应用程序中可见的图片(因此可以在应用程序外部共享和查看),但我想将图像保留在应用程序的数据目录中,以便应用程序被删除后会被删除(因此它们存储在"{sdcard}/Android/data/{appID}/Pictures/{subfolder} /"中).

我已经查看了很多答案,对于旧版本的Android,以下两种解决方案都有效,但它们似乎不适用于Lollipop:

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);
sendBroadcast(mediaScanIntent);
Run Code Online (Sandbox Code Playgroud)

我在Nexus 4(Android 5.0.1)和Nexus 6(Android 5.1)中对此进行了测试,但它不起作用.在Nexus 7(Android 4.2.2)中,它确实有效.所有3个设备在{sdcard}/Android/data /文件夹中都有一个".onmedia"文件,因此没有正常的媒体扫描应该选择它们...

有没有人知道如何在所有设备/ Android版本上使用它?这应该是因为noMedia文件首先不起作用并且Lollipop是唯一正确执行此操作的版本吗?

编辑:请注意,即使重新启动手机(也应该触发重新扫描文件)也不起作用.并且有充分的理由因为文件位于".nomedia"目录的子文件夹中...所以任何包含MEDIA_MOUNTED广播的解决方案都是无用的我认为.

android android-gallery android-file android-mediascanner android-5.0-lollipop

8
推荐指数
1
解决办法
4542
查看次数