我正试图在我的应用程序内打开Gallery内置应用程序中的图像/图片.
我有一张图片的URI(图片位于SD卡上).
你有什么建议吗?
可以ListView横向制作吗?我这样做了使用图库视图,但所选项目自动进入屏幕中心.我不希望所选项目在我点击的同一位置.我该如何纠正这个问题?我的想法是设置ListView水平滚动.分享你的想法?
可能重复:
Android中的水平ListView?
像Android中的许多东西一样,你不会认为这会是一个如此难的问题,但哦,哦,你会错的.而且,与Android中的许多内容一样,API甚至没有提供合理可扩展的起点.如果我要打开自己的ListView,我会被诅咒,当我想要的只是把它拿走并把它转向它.\咆哮
好吧,现在我已经完成了冒烟,让我们谈谈问题本身.我需要的基本上就像是Gallery,但没有中心锁定功能.我真的不需要ListViewlistSelector,但这是一个很好的选择.大多数情况下,我可以用LinearLayout内部的方式做我想做的事情ScrollView,但我需要来自a的子视图ListAdapter,我真的希望有一个视图回收器.我真的不想写任何布局代码.
我偷看了其中一些类的源代码......
图库:如果我覆盖大多数'onXyz'方法,复制所有源代码,但不要调用,看起来我可以使用Gallery scrollIntoSlots().但我敢肯定,如果我这样做,我会遇到一些无法访问的成员字段或其他一些无法预料的后果.
AbsSpinner:由于该mRecycler字段是包私有的,我怀疑我是否能够扩展这个类.
AbsListView:看起来这个类只适用于垂直滚动,所以没有帮助.
AdapterView:我从来没有直接扩展这个类.如果你告诉我它很容易做,并且很容易自己动手RecycleBin,我会非常怀疑,但我会试一试.
我想我可以复制这两个 AbsSpinner并Gallery得到我想要的东西......希望那些类没有使用一些我无法访问的包私有变量.你们都认为这是一个好习惯吗?有没有人有任何教程或第三方解决方案可能会让我朝着正确的方向前进?
更新:
到目前为止我找到的唯一解决方案是自己完成所有工作.自从提出这个问题以来,我已经AdapterView从头开始重写并实现了自己的"HorizontalListView".真正覆盖Gallery的中心锁定功能的唯一方法是覆盖私有scrollIntoSlots方法,我认为这需要在运行时生成子类.如果你足够大胆地做到这一点,它可以说是最好的解决方案,但我不想依赖可能改变的无证方法.
下面的Swathi EP建议我给出Gallery一个OnTouchListener并覆盖滚动功能.如果你不关心你的列表中有一扔支持,或者如果它是没关系的意见,在一扔动画结束捕捉到中心,那么这会为你工作!然而,最终仍然证明在不移除支撑的情况下移除中心锁定特征是不可能的.而且我问你,什么样的名单不扔?
所以,唉,这对我不起作用.:-(但如果你对这种方法感兴趣,请继续阅读......
我还必须对Swathi的代码添加一些内容以获得我想要的内容.在GestureListener.onTouch,除了委托给手势检测器,我还必须返回true ACTION_UP和ACTION_CANCEL事件.这成功禁用了中心锁定功能,但它也禁用了投掷功能.我能够通过将自己的GestureListener委托给Gallery的onFling方法来重新启用fling .如果您想尝试一下,请进入ApiDemos示例代码并使用以下代码替换Gallery1.java类:
import com.example.android.apis.R;
import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.GestureDetector;
import android.view.MenuItem;
import android.view.MotionEvent; …Run Code Online (Sandbox Code Playgroud) 我想从画廊创建一个图片选择器.我用代码
intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, TFRequestCodes.GALLERY);
Run Code Online (Sandbox Code Playgroud)
我的问题是在此活动中显示视频文件.有没有办法过滤显示的文件,以便在此活动中不显示任何视频文件?
当我将媒体库中的图像加载到位图时,一切都运行正常,除了在垂直拿着手机时用相机拍摄的图片被旋转,以便我总是得到水平图片,即使它在画廊.为什么这样,我怎么能正确加载它?
我已经尝试了几天来配置我的缩略图库,所以所有图像都显示相同的高度和宽度.但是当我将Css代码更改为时,
max-height: 150px;
max-width: 200px;
width: 120px;
height: 120px;
Run Code Online (Sandbox Code Playgroud)
我得到的图像大小都相同,但纵横比被拉伸毁了图像.有没有办法调整图像容器的大小而不是图像?让我保持纵横比.但仍然调整图像大小.(我不介意我切掉一些图像.)
提前致谢!
我将图像保存到SD卡中,直到我拉出SD卡并将其返回后才会出现在Gallery应用程序中.
你知道为什么会这样吗?
看起来像Gallery应用程序有一些缓存没有更新文件保存...
实际上,我还想在Gallery应用程序中打开刚刚保存的图像并且没有成功,
这是我对此问题的疑问.
我有一个带有图片库的应用程序,我希望用户可以将其保存到自己的图库中.我已经创建了一个带有单个声音"保存"的选项菜单,但问题是......我怎样才能将图像保存到图库中?
这是我的代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.menuFinale:
imgView.setDrawingCacheEnabled(true);
Bitmap bitmap = imgView.getDrawingCache();
File root = Environment.getExternalStorageDirectory();
File file = new File(root.getAbsolutePath()+"/DCIM/Camera/img.jpg");
try
{
file.createNewFile();
FileOutputStream ostream = new FileOutputStream(file);
bitmap.compress(CompressFormat.JPEG, 100, ostream);
ostream.close();
}
catch (Exception e)
{
e.printStackTrace();
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定这部分代码:
File root = Environment.getExternalStorageDirectory();
File file = new File(root.getAbsolutePath()+"/DCIM/Camera/img.jpg");
Run Code Online (Sandbox Code Playgroud)
保存到画廊是否正确?不幸的是代码不起作用:(
我刚刚收到了一个项目的以下设计,一个图像网格库,具有动态宽度和高度图像(用户提交的图像).(帖子末尾的截图)
我尝试过jQuery Masonry,Tympanus Automatic Image Montage和CSS-Tricks Seemless Responsive Photo Grid,但每个都有其局限性.
编辑:我遇到了,Isotope,这几乎是完美的,我可能最终会使用它,除非有一些东西可以完全解决我的需求.因此我的问题仍然是一样的......
是否有任何javascript(最好是jQuery)脚本可以生成一个完全动态的马赛克(关于图像大小),如下面的截图中的那个?
谢谢你的帮助

我正在为Android 2.1开发一个应用程序.我想让我的用户在我的应用程序中选择个人资料图片(我没有使用联系人框架).
理想的解决方案是启动一个使用户能够从图库中选择图像的意图,但如果没有合适的图像,则使用相机拍照(反之亦然,即允许用户拍照,但如果他们知道他们已经有了合适的图像,让他们进入画廊并选择所述图像).
目前我可以做其中一个但不能两个都做.
如果我使用MediaStore.ACTION_IMAGE_CAPTURE直接进入相机模式,则无法进入图库.
如果我使用Intent.ACTION_PICK直接进入图库,那么我可以选择一个图像,但是如果我单击相机按钮(在图库的右上角),则会触发新的相机意图.因此,拍摄的任何照片都不会直接返回给我的应用程序.(当然你可以按后退按钮退回到图库并从那里选择图像,但这是一个额外的不必要的步骤,并不是很直观).
那么有没有办法将两者结合起来,或者我是否必须提供一个菜单来从我的应用程序中做一个或另一个?看起来这将是一个常见的用例...当然我错过了什么?