小编Dam*_*ian的帖子

单一意图让用户拍照或从Android中的图库中选择图像

我正在为Android 2.1开发一个应用程序.我想让我的用户在我的应用程序中选择个人资料图片(我没有使用联系人框架).

理想的解决方案是启动一个使用户能够从图库中选择图像的意图,但如果没有合适的图像,则使用相机拍照(反之亦然,即允许用户拍照,但如果他们知道他们已经有了合适的图像,让他们进入画廊并选择所述图像).

目前我可以做其中一个但不能两个都做.

如果我使用MediaStore.ACTION_IMAGE_CAPTURE直接进入相机模式,则无法进入图库.

如果我使用Intent.ACTION_PICK直接进入图库,那么我可以选择一个图像,但是如果我单击相机按钮(在图库的右上角),则会触发新的相机意图.因此,拍摄的任何照片都不会直接返回给我的应用程序.(当然你可以按后退按钮退回到图库并从那里选择图像,但这是一个额外的不必要的步骤,并不是很直观).

那么有没有办法将两者结合起来,或者我是否必须提供一个菜单来从我的应用程序中做一个或另一个?看起来这将是一个常见的用例...当然我错过了什么?

camera android image gallery android-intent

66
推荐指数
3
解决办法
4万
查看次数

在Android中计算罗盘方位/前往位置

我想在谷歌地图视图上的我的位置显示一个箭头,显示我相对于目的地位置(而不是北方)的方向.

a)我使用磁力计和加速度计的传感器值计算了北方.我知道这是正确的,因为它与谷歌地图视图中使用的指南针对齐.

b)我使用myLocation.bearingTo(destLocation)计算了从我的位置到目的地位置的初始方位;

我错过了最后一步; 从这两个值(a和b)我用什么公式来得出手机相对于目的地位置的方向?

感谢任何有关心灵的帮助!

android location bearing heading compass-geolocation

54
推荐指数
3
解决办法
11万
查看次数

使用RxJava和Retrofit迭代列表并根据子查询扩充结果

我正在使用改造,我觉得rxjava(with retrolambda)非常适合以下流程:

  1. 获取小部件列表(http)
  2. 为每个小部件

    a)获取给定窗口小部件类型的文章列表(http)
    b)将所有文章保存到db
    c)获取列表中的第一篇(最新)文章并使用本文中的适当值更新widget.articleName和widget.articleUrl

  3. 转换回列表并完成

但是我不确定在步骤2a之后该怎么做.到目前为止,这是我的代码

apiService.getWidgets(token)
  .flatMapIterable(widgets -> widgets)
  .flatMap(widget -> apiService.getArticles(token, widget.type))
  ...
  .toList()
  .subscribe(
     modifiedWidgets -> saveWidgets(modifiedWidgets),
     throwable -> processWidgetError(throwable)
  );
Run Code Online (Sandbox Code Playgroud)

我玩过一些操作员,但是当链接时,我似乎总是缩小范围(例如,获取单个文章的句柄),然后再也无法访问原始小部件进行修改.

@GET("/widgets")
Observable<List<Widget>> getWidgets(@Header("Authorization") String token);

@GET("/articles")
Observable<List<Article>> getArticles(@Header("Authorization") String token, @Query("type") String type);
Run Code Online (Sandbox Code Playgroud)

android rx-java retrofit retrolambda

11
推荐指数
1
解决办法
6821
查看次数

如何在listview中获取行的位置(在屏幕上)

我已经实现了一些手势检测代码,以便我可以检测列表视图中的行(位于FrameLayout中)是否已被刷过.

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
    if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
        int itemId = MainActivity.this.getListView().pointToPosition((int) e1.getX(),(int) e1.getY());
        Offer order = (Offer)MainActivity.this.getListView().getAdapter().getItem(itemId);
        View v = MainActivity.this.getListView().getChildAt(itemId);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想在滑动行的顶部显示一个视图,其中包含该行的一组上下文相关选项.

我的问题是以下方法:

v.getTop()
v.getBottom()
Run Code Online (Sandbox Code Playgroud)

仅在滚动视图之前返回正确的值.我可以做一些计算来计算使用滚动位置等的偏移量,但我也注意到,当我在屏幕上滑动可见的行时,我只获取值.如果我向下滚动列表然后滑动一行(原来不在屏幕外),则这些方法返回空值.

以下方法似乎遇到了同样的问题......

v.getLocationOnScreen(loc)
v.getLocationInWindow(loc)
Run Code Online (Sandbox Code Playgroud)

最后,我希望找到可见列表顶部与已刷过的行之间的距离.然后,我将使用此距离将父视图添加到具有适当高度填充的父FrameLayout(以便它覆盖滑动的行).

任何帮助将非常感激!

android

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

在Honeycomb中加载微调器/对话框的片段

当我将数据加载到我的片段中时,我希望片段中间有一个不确定的微调器(下图中的示例),以向用户显示内容正在该特定窗格中加载.

在Honeycomb中做到这一点的最佳方法是什么?

我真的不想在操作栏中使用微调器,在数据加载的地方并不是很明显.此外,我不想要一个不确定的进度对话框,因为它出现在整个应用程序的中心,也阻止用户做任何其他事情,直到它被解雇.NB FragmentDialogs似乎也这样做.

我是否需要使用自定义FrameLayout来解决每个窗格所需的效果?

蜂窝截图

android spinner progressdialog android-fragments android-3.0-honeycomb

7
推荐指数
1
解决办法
8141
查看次数

在Android中以一定角度(例如颠倒)绘制文本

我正在尝试在Android中构建自定义时钟视图.见图http://twitpic.com/1devk7

到目前为止,绘制时间和小时标记我一直在使用Canvas.rotate方法来获得所需的效果.但是,请注意,由于绘制它们的角度,很难解释时钟下半部分的数字(例如6或9?).

使用drawText时,是否可以以45/90/180度绘制文本,以便在我的onDraw方法完成后所有文本都显示为直立?

android drawtext android-canvas

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