小编Art*_*hur的帖子

精确控制Androids VectorDrawable动画

更新:找到解决方案!向下滚动查看我接受的答案!

我想为一个图像的多个元素设置动画并将动画链接到ViewPagers位置(因此多个元素会根据拖动的当前页面进行变形或飞入/滑出).

那么,有没有办法精确控制动画的当前帧?例如,假设我有这个集合:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <objectAnimator
        android:interpolator="@android:anim/decelerate_interpolator"
        android:duration="800"
        android:propertyName="scaleY"
        android:valueFrom="0"
        android:valueTo="1" />
    <objectAnimator
        android:interpolator="@android:anim/decelerate_interpolator"
        android:duration="800"
        android:propertyName="scaleX"
        android:valueFrom="0"
        android:valueTo="1" />
    <objectAnimator
        android:interpolator="@android:anim/decelerate_interpolator"
        android:duration="800"
        android:propertyName="rotation"
        android:valueFrom="0"
        android:valueTo="360" />
</set>
Run Code Online (Sandbox Code Playgroud)

动画矢量文件:

<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/pre_signup_1" >
    <target
        android:name="plus_button"
        android:animation="@anim/pre_signup_1_plus_container" />
    <target
        android:name="plus"
        android:animation="@anim/pre_signup_1_plus_sign" />
</animated-vector>
Run Code Online (Sandbox Code Playgroud)

用于运行动画的Java代码:

ImageView mImage1 = (ImageView) findViewById(R.id.image_1);
AnimatedVectorDrawableCompat animated = (AnimatedVectorDrawableCompat) mImage1.getDrawable();

animated.start();
Run Code Online (Sandbox Code Playgroud)

有没有办法控制动画setCurrentDuration(400),可能会将动画的当前状态设置为一半?也许有一种方法可以将绘制的矢量分成多个层并以编程方式为它们设置动画?提前致谢!

android vector-graphics android-animation android-viewpager android-vectordrawable

20
推荐指数
1
解决办法
5679
查看次数

Android ActionBar自定义操作视图工具提示

我有一个使用SupportActionBar的应用程序.我是一个行动的自定义视图.

问题是,当我长按时,默认操作会显示工具提示,但我的自定义操作不会.

所以这是默认操作(如您所见,有一个工具提示): 带有工具提示的操作项

这是我的自定义操作(没有这个工具提示:/): 在此输入图像描述

这些2的xml:

    <menu
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:custom="http://schemas.android.com/apk/res-auto">

        <item
            android:visible="false"
            android:title="Clear history"
            android:id="@+id/action_clear_history"
            custom:showAsAction="always"
            android:icon="@drawable/ic_action_trash" />
        <item
            android:title="Open chat"
            android:id="@+id/action_chat"
            custom:showAsAction="always"
            custom:actionLayout="@layout/ab_chat" />
    </menu>
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

android actionview android-actionbar android-actionbar-compat

6
推荐指数
2
解决办法
2560
查看次数

可靠的Webhook调度系统

我很难为 Webhook 调度系统找出可靠且可扩展的解决方案。

当前系统使用RabbitMQwebhook 队列(我们称之为events),该队列被消耗和调度。该系统运行了一段时间,但现在出现了一些问题:

  • 如果系统用户产生过多的事件,会占用队列,导致其他用户长时间收不到webhook
  • 如果我将所有事件分成多个队列(通过 URL 哈希),则可以减少第一个问题的可能性,但当非常繁忙的用户访问同一队列时,它仍然会时不时地发生
  • 如果我尝试将每个 URL 放入其自己的队列中,面临的挑战是动态创建/分配消费者到这些队列。就RabbitMQ文档而言,该 API 在过滤非空队列或未分配消费者的队列方面非常有限。
  • Kafka我了解,在阅读有关它的所有内容后,情况在单个分区的范围内是相同的。

那么,问题是 - 有没有更好的方法/系统来实现此目的?也许我缺少一个非常简单的解决方案,可以让一个用户不干扰另一个用户?

提前致谢!

webhooks rabbitmq event-dispatching apache-kafka

6
推荐指数
1
解决办法
1433
查看次数

Android 4.4中的WebView和初始规模

我一直在撞墙一整天,我需要一些帮助:(

问题是,我有一个专为其设计的WebApp 640x960.

我们没有时间为每个屏幕尺寸编写css,因此我initial-scale, maximum-scale, minimum-scaleviewport元标记中使用将应用程序缩放到不同的屏幕尺寸.

问题是,在Android中4.4,无论我做什么,它总是扩展应用程序,但永远不会下降!

我的意思是如果我使用值0.7,应用程序将按比例放大.如果我使用的值1.3,它会再次放大:/

我试图改变targetSdkVersion不同版本以获得旧的行为,但没有运气.

有人能帮我吗?

更新: 所以,我结束了使用style="zoom: <value>%"上的body标签.我根据当前设备屏幕大小与我的应用程序设计的分辨率之间的差异来计算百分比.现在一切都适合.

android web-applications viewport android-webview

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

更改 Android 中应用程序的 DisplayMetrics(API 级别低于 17)

我正在开发该应用程序,它必须在不同设备上看起来相同。问题是,如果设备具有大分辨率屏幕(例如1920x1080,密度为320),那么所有元素都会开始看起来很小。

在 API 级别 17 及更高级别上,我可以使用此代码来纠正问题:

    DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();

    android.content.res.Configuration config = context.getResources().getConfiguration();
    config.densityDpi = <desired dpi goes here>;
    context.getResources().updateConfiguration(config, displayMetrics);
Run Code Online (Sandbox Code Playgroud)

java.lang.NoSuchFieldError: android.content.res.Configuration.densityDpi但如果 API 级别较低,它会抛出异常。

因此,我没有更改配置中的密度Dpi,而是尝试了以下方法:

    DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();

    android.content.res.Configuration config = context.getResources().getConfiguration();
    displayMetrics.densityDpi = <desired dpi goes here>;
    context.getResources().updateConfiguration(config, displayMetrics);
Run Code Online (Sandbox Code Playgroud)

但这段代码根本没有任何效果:(。也许我用错了?有人可以帮我解决这个问题吗?

更新:那么,没有人知道这一点吗?:/

java configuration android dpi screen-resolution

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