小编Fel*_*Jun的帖子

SVG文件和Android Studio矢量资产之间的不一致

我正在使用Sketch软件构建svg图像以在我的android项目中使用.我遇到了这个问题:

在此输入图像描述

正如您所看到的,图片还可以,我通过Chrome和Macos预览检查了预览.

当我尝试在Android Studio中导入SVG时,导入预览如下:

在此输入图像描述

填充的内部的减去的圆圈消失了.导入日志给我发消息:

In ic_percent.svg:
WARNING@ line 10 We don't scale the stroke width!
WARNING@ line 11 We don't scale the stroke width!
WARNING@ line 12 We don't scale the stroke width!
WARNING@ line 13 We don't scale the stroke width!
Run Code Online (Sandbox Code Playgroud)

有谁知道我的导入发生了什么?

svg android-studio

13
推荐指数
2
解决办法
6215
查看次数

如何在Android中使用数据绑定绑定layout_width和layout_height

我正在尝试绑定一个指示ImageView的布尔值,如果屏幕尺寸很小,那么如果我需要更多空间用于其他组件,它会缩小.我正在使用DataBinding库这样做.

我的布局,其宽度和高度取决于此布尔值:

...
<data>
    ...
    <variable name="smallScreen" type="boolean"/>
    ...
</data>
...
<ImageView
android:layout_width="@{smallScreen ? @dimen/img_small_screen_size : @dimen/img_big_screen_size}"
android:layout_height="@{smallScreen ? @dimen/img_small_screen_size : @dimen/img_big_screen_size}"
android:layout_gravity="center_horizontal"
android:contentDescription="@{message}"
android:src="@{image}"
android:scaleType="center"
tools:src="@drawable/img_message_private"/>
...
Run Code Online (Sandbox Code Playgroud)

如果我只是尝试像这样构建我的项目,编译器说layout_width不能接受float类型.很公平,我使用BindingAdapter类为布局属性创建一个浮动输入,如下所示:

...
@BindingAdapter("android:layout_width")
public static void setLayoutWidth(View view, float width) {
    ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
    layoutParams.width = (int) width;
    view.setLayoutParams(layoutParams);
}

@BindingAdapter("android:layout_height")
public static void setLayoutHeight(View view, float height) {
    ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
    layoutParams.height = (int) height;
    view.setLayoutParams(layoutParams);
}
...
Run Code Online (Sandbox Code Playgroud)

这允许我的项目建立.但是当最终渲染布局时,我会遇到以下异常:

java.lang.RuntimeException: Binary XML file line #21: You must …
Run Code Online (Sandbox Code Playgroud)

xml data-binding android android-databinding

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

python - 在 gRPC 无限流期间检测客户端丢失

我正在实现一个无限流响应,比如使用 gRPC 架构的发布/订阅模式。

有一个端点打开一个响应流并保持它直到客户端掉线。为此,我存储了一个键值哈希,其中键是 gRPC 上下文,值是我用来轮询发送消息的队列。

我的端点代码如下所示:

def StreamTrades(self, request, context):
    self.feeds[context] = queue.Queue()

    callback_queue = queue.Queue()

    def remove_feed():
        if self.feeds.get(context) is not None:
            del self.feeds[context]

    def stop_stream():
        remove_feed()

        def raise_stop_stream_exception():
            raise StopStream('stopping stream')

        callback_queue.put(raise_stop_stream_exception)

    context.add_callback(stop_stream)

    def output_generator():
        while True:
            try:
                try:
                    callback = callback_queue.get(False)
                    callback()
                except queue.Empty:
                    pass
                if self.feeds.get(context) is not None:
                    trade = self.feeds[context].get()
                    if isinstance(trade, trades_pb2.Trade):
                        yield trade
                else:
                    raise StopStream('stopping stream')
            except IndexError:
                pass
            except StopStream:
                return

    return output_generator()
Run Code Online (Sandbox Code Playgroud)

此代码适用于订阅和发布对客户端的更改。但是有一个与取消订阅相关的问题。检测客户端丢失的好方法是什么?使用 Context.add_callback(callBack) 似乎不起作用,因为只有在服务器完成并关闭流时才会调用回调。当客户端不再存在时,生成器不会引发任何类型的状态。我看到在 Java 中,当在 streamObserver …

python stream grpc

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

Android中的矢量动态调整大小

我在android中使用SVG导入的图像,但我无法使用ImageView调整大小,图像是这样的.

在此输入图像描述

进口的drawable是:

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="208dp"
android:height="208dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
    android:fillColor="#8A1D3043"
    android:pathData="...lines and curves..."/>
</vector>
Run Code Online (Sandbox Code Playgroud)

当我更改ImageView(它所附加的位置)layout_height和layout_width时,我得到了这个:

        <ImageView
        android:layout_height="100dp"
        android:layout_width="100dp"
        app:layout_width="@{smallScreen ? @dimen/img_small_screen_size : @dimen/img_big_screen_size}"
        app:layout_height="@{smallScreen ? @dimen/img_small_screen_size : @dimen/img_big_screen_size}"
        android:layout_gravity="center_horizontal"
        android:contentDescription="@{message}"
        android:src="@{image}"
        android:scaleType="center"
        tools:src="@drawable/img_message_private"/>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

请注意,向量的高度和宽度都是208dp,但我的ImageView必须用作100dp.必须使用dataBind动态调整View的大小,因此我认为有多个向量不是一个选项.

显然,图像不能与ImageView一起缩放.有人知道为什么以及如何轻松绕过它?

svg android svg-android android-vectordrawable

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