小编Dio*_*ijn的帖子

从android库中选择多个图像

所以基本上我想要实现的是Gallery在Android中打开并让用户选择multiple images.现在这个问题经常被问到,但我对答案不满意.主要是因为我在我的IDE中找到了de docs中的一些有趣内容(我稍后再回过头来),因此我不想使用自定义适配器而只需要使用自定义适配器.

现在我选择一个图像的代码是:

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);
Run Code Online (Sandbox Code Playgroud)

现在SO和其他网站上的人们会告诉你,你有两个选择:

1)不要使用ACTION_GET_CONTENT而是使用ACTION_SEND_MULTIPLE.
这个不起作用.这个是根据文件的sending文件,而不是retrieving,这正是它的作用.当使用ACTION_SEND_MULTIPLE时,我在我的设备上打开了一个窗口,我必须选择一个应用程序来发送我的数据.这不是我想要的,所以我想知道人们是如何通过这个解决方案实现这一目标的.我想念一些东西吗?

2)实施custom Gallery.现在这是我将考虑的最后一个选项,因为我不是我要搜索的东西,因为我必须自己设计风格以及为什么你不能在香草画廊中选择多个图像?

必须有一个选项..现在我发现的有趣的是这个:
我在文档描述中找到了这个ACTION_GET_CONTENT.

如果调用者可以处理多个返回的项(用户执行多个选择),那么它可以指定EXTRA_ALLOW_MULTIPLE来指示这一点.

这非常有趣.在这里,他们将其引用到用户可以选择多个项目的用例?

后来他们在文档中说:

您可以使用EXTRA_ALLOW_MULTIPLE来允许用户选择多个项目.

所以这很明显吧?这就是我需要的.但我的以下问题是:我可以把它放在哪里EXTRA_ALLOW_MULTIPLE?令人遗憾的是,我无法在developers.android指南中找到它,也没有在INTENT类中将其定义为常量.

有人可以帮我解决这个问题EXTRA_ALLOW_MULTIPLE吗?

android image-gallery

98
推荐指数
6
解决办法
13万
查看次数

将十六进制值(0x45E213)存储为整数

在我的应用程序中,我使用转换器从3个值> RGB颜色和Hex值创建.我在运行时使用它在我的应用程序中设置渐变背景.

现在这是以下问题.转换器的结果是a (String) #45E213,这不能存储在整数中.但是当你创建一个整数时

int hex = 0x45E213;
Run Code Online (Sandbox Code Playgroud)

它确实工作正常,这不会给出错误.

现在我知道了这一点,我将其替换#为了0x,并尝试将其从String转换为Integer.

int hexToInt = new Integer("0x45E213").intValue();
Run Code Online (Sandbox Code Playgroud)

但是现在我得到了numberFormatException,因为在转换时,它会不同意这个角色E

我怎么解决这个问题?因为我真的需要它作为整数或Java/Eclipse不会在它的方法中使用它.

java android hex numberformatexception

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

哪些颜色值可用于GradientDrawable

在我的应用程序中,我试图从代码中绘制一个gradientBackground.我的目标是建立这样的背景dynamic.

现在是我的问题,下面这个函数是我正在谈论的函数,并且有一个参数 int[] colors

GradientDrawable(GradientDrawable.Orientation orientation, int[] colors);
Run Code Online (Sandbox Code Playgroud)

我可以在int []颜色中添加哪些值?我知道以下值有效.

  • 0xAARRGGBB

但我的问题是,我在我的程序中重新计算哈希值,但它们以字符串结尾,但它必须以整数结束.

并且无法将哈希值转换为:String 0x34F323到Int 0x34F323.当我重新计算哈希值并得到:

String: #125BD7

我使用Integer.Decode("#125BD7"); 输出将是七个数字的值.但是这在int []参数的GradientDrawable方法中不起作用.因为我得到的只是黑色背景.

有人可以帮我弄这个吗?我可以在GradientDrawable方法中使用哪些值?

java android background

5
推荐指数
1
解决办法
1003
查看次数

操作栏选项卡选择分隔线颜色

在下面的android 开发人员指南中,您会看到标签下方的浅蓝色边缘.我尝试用另一种颜色来塑造这个小边缘,但我没有成功.

同时我成功地设置了动作栏和标签的样式.但我唯一无法取得成功的是改变那个小小的蓝色边缘.我甚至不知道它在指南中是如何调用的.因为分隔符是所有水龙头之间的小条纹:

[气球| 自行车| ANDROIDS | PASTRIES]

有人可以帮我弄这个吗?我必须使用哪种风格来改变这种颜色?

以下行没有成功:

<item name="android:actionBarDivider">@drawable/divider</item>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

android styles android-actionbar

5
推荐指数
1
解决办法
8385
查看次数

整个应用中使用的自定义字体

因此,有不同的方法在Android中设置您的字体.我需要做的是将字体与a组合设置custom font,从而将字体设置为entire app.

经过一些研究,我有2个选择.

  • 覆盖EditText并设置字体,在我的布局xml中使用此类.
  • 在styles.xml中添加一个字体到我的AppTheme.

现在我更喜欢最后一个选项,这显然是我最好的选择,因为我在整个应用程序中使用相同的字体.现在的问题是,在我的Assets/font/文件夹中我添加了我想要使用的字体,但我不能在我的样式中使用它.

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:typeface"> Here? </item>
</style>
Run Code Online (Sandbox Code Playgroud)

如何将我的字体添加为字体.那可能吗?

fonts android

5
推荐指数
1
解决办法
419
查看次数

在api级别低于19的情况下使用setUpdateListener

对于动画,我必须听取ViewPropertyAnimator的每一步.我用它AnimatorUpdateListener结合了setUpdateListener.
来源:http://developer.android.com/reference/android/view/ViewPropertyAnimator.html


我如何使用它的示例:

image.animate().translationY(transY).setDuration(duration).setUpdateListener(new AnimatorUpdateListener() {

       @Override
       public void onAnimationUpdate(ValueAnimator animation) {
           // do my things
       }
});
Run Code Online (Sandbox Code Playgroud)

现在我将一个物体从A移动到B,并detect在移动时需要做一些事情.现在setUpdateListener对此非常有帮助,并且使用此代码它都可以正常工作.但它需要api级别19.我真的想在这个项目中使用api level 14.有替代品setUpdateListener吗?

ViewPropertyAnimator.setUpdateListener

Call requires api level 19 (current min is 14)
Run Code Online (Sandbox Code Playgroud)

animation android

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

Kotlin .let {} null安全假设错误

使用该.let { }功能时,我注意到在执行以下操作时:

bucket?.assignedVariantName.let {
        bucket?.determineVariant()  <-- guarantee safety for bucket
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下你必须保证铲斗的安全,即 bucket?.或者bucket!!在使用?.let时已经保证了零安全性,然后我注意到在执行以下操作时:

bucket?.assignedVariantName?.let { <-- added safety check for property 
        bucket.determineVariant()  <-- doesn't need to guarantee safety for bucket
}
Run Code Online (Sandbox Code Playgroud)

虽然在桶的属性上使用let而不是直接在桶上我想知道这是故意还是Kotlin插件中的错误(在这种情况下我在Android Studio中遇到过这个)

另外的信息是,在这种情况下,存储桶是一个已local val分配的变量名是可以为空的变量.

val bucket: T? = ...
Run Code Online (Sandbox Code Playgroud)

kotlin kotlin-null-safety

4
推荐指数
1
解决办法
690
查看次数

转换double 0.10 double.parse()时转换为10.0

我在visual studio中有一个简单的控制台应用程序,可以在大的时候测试一些代码.但现在我有一个解析一些字符串加倍的问题.
当用户输入是String: 0.10我想将其转换为double时.所以输出应该是双倍的:0.10.

但是,当我使用以下代码执行此操作时:

double r_value = 0;
r_value = Math.Round(double.Parse(value), 2);
Run Code Online (Sandbox Code Playgroud)

要么

r_value = double.Parse(value);
Run Code Online (Sandbox Code Playgroud)

输出将是:10或10.0.这个输出怎么会这样改变?并转换为10.0而不是0.10,因为我认为它应该是.

c# double parsing

3
推荐指数
1
解决办法
875
查看次数