小编Gio*_*gen的帖子

如何使用十六进制颜色值

我试图在Swift中使用十六进制颜色值,而不是UIColor允许你使用的几个标准颜色值,但我不知道如何去做.

示例:我将如何#ffffff用作颜色?

uicolor ios swift

324
推荐指数
19
解决办法
26万
查看次数

如何在 Flutter/Dart 中导入特定于平台的依赖项?(结合网络与Android/iOS)

shared_preferences在适用于 iOS 和 Android 的 Flutter 应用程序中使用。在网络上,我使用http:dart依赖项 ( window.localStorage) 本身。由于 Flutter for web 被合并到 Flutter repo 中,我想创建一个跨平台的解决方案。

这意味着我需要导入两个单独的 API。这在 Dart 中似乎还没有得到很好的支持,但这就是我所做的:

import 'package:some_project/stub/preference_utils_stub.dart'
    if (dart.library.html) 'dart:html'
    if (dart.library.io) 'package:shared_preferences/shared_preferences.dart';

Run Code Online (Sandbox Code Playgroud)

在我的preference_utils_stub.dart文件中,我实现了在编译时需要可见的所有类/变量:

Window window;

class SharedPreferences {
  static Future<SharedPreferences> get getInstance async {}
  setString(String key, String value) {}
  getString(String key) {}
}

class Window {
  Map<String, String> localStorage;
}

Run Code Online (Sandbox Code Playgroud)

这在编译之前消除了所有错误。现在我实现了一些检查应用程序是否正在使用网络的方法:

static Future<String> getString(String key) async {
    if (kIsWeb) {
       return window.localStorage[key];
    }
    SharedPreferences preferences = …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-web

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

在 Flutter 中绘制 SVG 并与之交互

我们正在开发一个基于 SVG 输入显示人体的应用程序。这个人体分为几个区域,比如头部、左臂、右臂、腹部等。

我们希望在用户点击例如一只手臂时突出显示图像的一个区域。在 Flutter 中实现这一目标的最佳方法是什么?

我们尝试将 Flare 用于 Flutter,但此库不提供与正在显示的人体的直接交互。

有没有更简单的方法:

  • 基于 SVG 渲染主体(图稿在未来的开发中可能会发生变化);
  • 检测点击,例如GestureDetector
  • 根据点击的坐标找到被按下的区域;

请注意,由于图像的部分重叠,简单的框将不起作用。可以看到我们想要达到的效果,我在这里点击了一只手臂。在它周围绘制一些可点击的框,效果不佳。

提前致谢。

艺术品

svg flare dart flutter

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

Android:使用缩放和翻译的画布获取正确的坐标

我正在编写一个能够缩放和平移图像的Android(Xamarin)应用程序.用户还可以单击图像上的位置.我需要图像上的那些坐标供以后使用.

以下代码是缩放和平移图像:

protected override void OnDraw(Canvas canvas)
{
    base.OnDraw(canvas);

    _maxX = canvas.Width;
    _maxY = canvas.Height;

    canvas.Translate(_posX, _posY);

    if (_scaleDetector.IsInProgress)
        canvas.Scale(_scaleFactor, _scaleFactor, _scaleDetector.FocusX, _scaleDetector.FocusY);
    else
        canvas.Scale(_scaleFactor, _scaleFactor, _lastGestureX, _lastGestureY);
}
Run Code Online (Sandbox Code Playgroud)

到目前为止这么好,现在我有一些MotionEvent使用,这是一个LongPressListener.我编写了以下代码来将坐标从MotionEvent图像上的坐标转换为:

var actualX = e.GetX() - (_parent._posX / _parent._scaleFactor);
var actualY = e.GetY() - (_parent._posY / _parent._scaleFactor);
Run Code Online (Sandbox Code Playgroud)

e在这种情况下是图像的框架.帧保存图像(即_parent),用户可以拖动图像._parent._posX/Y发生这种情况时会发生变化 用户还可以缩放图像,即_scaleFactor.

因此,当用户点击任意位置时e,我需要将这些坐标转换为图像坐标.

这两行代码可以工作,但是当用户放大时,坐标会关闭,如附图所示:

屏幕录制

红点代表计算的位置.如您所见,如果用户放大坐标会获得更多关闭.这个计算有什么问题?

c# android coordinates

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

VS Code(OSX)Flutter热重载不是由保存触发的

将VS Code版本升级到1.32.1后,保存/自动保存不会触发自动热重装。以前就像魅力一样。

按下热重载按钮仍然可以进行热重载。

据Flutter医生说Flutter似乎还可以:

Doctor summary (to see all details, run flutter doctor -v):

[?] Flutter (Channel beta, v1.2.1, on Mac OS X 10.14.2 18C54, locale hu-HU)

[?] Android toolchain - develop for Android devices (Android SDK version 28.0.3)

[?] iOS toolchain - develop for iOS devices (Xcode 10.1)

[?] Android Studio (version 3.2)

[?] VS Code (version 1.32.1)

[?] Connected device (2 available)
Run Code Online (Sandbox Code Playgroud)

你有同样的经历吗?您有什么建议要解决吗?

visual-studio-code flutter hot-reload

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

Dart:获取通用列表类型的子类型

考虑以下方法:

static void parse<T>(String input, T instance)
Run Code Online (Sandbox Code Playgroud)

可能有T一种情况是List. 如何获取 的子类型ListList请注意,此时中没有任何元素。所以这样做List[0].runtimeType是没有选择的。

如果T是类型List<Foo>,我想要得到Foo

在 Dart 中如何做到这一点?

dart flutter

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

API等级26:粘性背景服务

由于Android O不允许在不通知用户的情况下启动后台服务,因此我想选择使用Firebase Jobdispatcher在后台运行新线程的不同方法,请参阅:https://github.com/firebase/firebase -jobdispatcher,机器人

在构建API 26之前,我曾经在服务中启动一个新线程.这是一个STICKY服务,并将在用户从最近关闭应用程序时重新启动(当幻灯片从正在运行的应用程序中删除应用程序时).

在下面的API 26之前查看我的原始代码.

public class NotificationService extends Service {

@Override
public void onCreate() {
    // this will start the thread
    ApplicationLoader.postInitApplication();
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    return START_STICKY;
}

@Override
public IBinder onBind(Intent intent) {
    return null;
}
Run Code Online (Sandbox Code Playgroud)

在API 26中,出现了一些限制:

https://developer.android.com/about/versions/oreo/android-8.0-changes.html#back-all

所以上面的方法不再起作用了.但即使用户从最近的应用程序关闭应用程序,我仍然希望我的线程能够运行.我发现了一种解决方法,但对我来说感觉非常糟糕.

FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher
                (new GooglePlayDriver(applicationContext));

Job notificationJob = dispatcher.newJobBuilder()
          .setService(NotificationService.class)
          .setTag("backgroundJob-" + System.currentTimeMillis())
          .setRecurring(true)
          .setLifetime(Lifetime.UNTIL_NEXT_BOOT)
          .setTrigger(Trigger.executionWindow(50, 60))
          .setReplaceCurrent(false)
          .build();
dispatcher.mustSchedule(notificationJob); …
Run Code Online (Sandbox Code Playgroud)

java multithreading android

5
推荐指数
0
解决办法
661
查看次数

Angular 7:拦截器中的等待函数

我在我的第一个 Angular 应用程序中构建了一个错误拦截器,这对我来说是全新的。当出现401响应代码时,拦截器会尝试刷新 Firebase 授权令牌。因此,我编写了以下代码:

@Injectable()
export class ErrorInterceptor implements HttpInterceptor {
constructor(private authService: AuthService, private alertService: AlertService) { }

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    return next.handle(request).pipe(
        catchError(err => {
            if (err.status === 401) {
                let user = localStorage.getItem('currentUser');
                if (!user) {
                    this.logout(false);
                    return throwError(err.error);
                }
                let currentUser = JSON.parse(user);
                if (!currentUser || !currentUser.stsTokenManager || !currentUser.stsTokenManager.accessToken) {
                    this.logout(false);
                    return throwError(err.error);
                }
                const reference = this;
                this.authService.getToken(currentUser, true).then(t => {
                    // How do I await and return this …
Run Code Online (Sandbox Code Playgroud)

typescript angular angular7

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

ChaCha20-Poly1305计算出错误的Mac

目前,我已经为Android和PHP构建了一个应用程序,该应用程序使用chacha20-poly1305加密了一些数据。由于我使用libsodium作为它们的主干,因此这些程序工作正常。

但是,现在我为Arduino创建了相同的东西。但是我为此使用了一个不同的库。我正在使用以下输入:

Plaintext: 0000000000000001
Nonce: 0000000000000001
Key: b78b94bdf407e2fb0c4cb01e74fee7db743d4d5ab636fe4c181511137dedfc46
Run Code Online (Sandbox Code Playgroud)

在libsodium上,它使用mac生成以下密文:

78260b2aca088071 3c8eea6f05b671ed72f1bc61fee7cc22
Run Code Online (Sandbox Code Playgroud)

但是在Arduino上:

78260b2aca088071 4d888c3b8fe1a4ab8a28d5e593fe7a25
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:两者都有效吗?反之,它们不起作用,那么Arduino变体可能是什么问题?

encryption

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

更新Android应用程序而不更改版本号

我想知道是否有可能在不增加版本号的情况下更新Android应用程序.

我问这个问题,因为每次我在我的应用程序中实现一些小的东西,我需要在Play商店中更新它,然后我必须提供一个新的更高的版本号.

android google-play xamarin google-play-console

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