
Max
26.06.2018
12:17:36
каким образом?
Там все очень глупо вышло в итоге, надо было саппорт 8.1 отключить
Проблема тупо с Android.TargetVesion
У меня по дефолту стояла 8.1
Надо было поставить Use Compiling SDK

Google

Kirill
26.06.2018
12:18:36
странно, а что делать, если надо 8.1?

Max
26.06.2018
12:18:54
И надо запрашивать рантайм пермишн
Но это на онли 7+

Kirill
26.06.2018
12:19:17
ааа

Max
26.06.2018
12:19:43
И с этим возникла новая проблема)))
По дефолту нет такого пермишена
Разберусь, скину решение

Serhii
26.06.2018
12:20:37
Всем привет. Приложение xamarin android native. Делаем регистрацию. При регистрации на почту приходит ссылка подтверждения. При нажатии на ссылку должно редиректить в приложение. Uri scheme для перенаправления в приложение должна приходить с письмом? Как вообще это лучше всего реализовать? Мне нужно сделать именно сам переход с письма в приложение

Max
26.06.2018
12:21:17
Типо как с номером телефона и дефолтным приложением для "открытия действия с номером"
Надеюсь ± объяснил о чем речь
Как и в обычном Android

Google

Evgeniy
26.06.2018
12:25:11

Serhii
26.06.2018
12:31:20
благодарю

Sasha
26.06.2018
13:01:40
Всем привет, посоветуйте как решить проблему, у меня есть метод который должен выполняться по окончанию другого метода, Другой метод выполняется в классе интерсептори (активити) Xamarin Android проекта. Запуск метода интерсептора выполняется в OnCreate

Kirill
26.06.2018
13:03:55

Sasha
26.06.2018
13:05:04

vladimir
26.06.2018
13:12:34
у Task ещё есть ContinueWith,
не знаю, на сколько подойдёт

Andy
26.06.2018
13:14:21

Kirill
26.06.2018
13:15:36

Andy
26.06.2018
13:16:40
дебагером
base сначала написал, потом убрал, но толку если не заходит
наличие OnDraw может мешать ?

vladimir
26.06.2018
13:20:49

Andy
26.06.2018
13:22:10
c OnDraw я и начинал
неуспешно
потом тут посоветовали напрямую в Draw
в инете почитал тоже как бы надо в него если все будет рисоваться самостоятельно и не будет дочерних view
если OnDraw то рисует один случайный квадратик и все
мне то и надо всего навсего прямой доступ к тому что в View будет видно
чего столько проблем то :)

vladimir
26.06.2018
13:24:22

Andy
26.06.2018
13:24:50
фактически с таймером я получил тот же плохой результат как и с BackgroundWorker
так должно же непрерывно рисовать новые по таймеру
или как укажет BackgroundWorker

vladimir
26.06.2018
13:25:37
а как вы вызываете Invalidate?

Andy
26.06.2018
13:25:40
и так и так только один раз отображается

Google

Andy
26.06.2018
13:25:49
в таймере
в BackgroundWorker я через сохраненный канвас пробовал

vladimir
26.06.2018
13:26:20
всмысле, код покажите

Andy
26.06.2018
13:29:35
ну проще с таймером понять
не работает одинаково
вот таймер
вызывается CountDown() в констректоре моего View
private void CountDown() {
System.Timers.Timer timer = new System.Timers.Timer();
timer.Interval = 100;
timer.Elapsed += OnTimedEvent;
timer.AutoReset = true;
timer.Enabled = true;
}
private void OnTimedEvent(object sender, System.Timers.ElapsedEventArgs e) {
Invalidate();
}

vladimir
26.06.2018
13:31:15
это внутри вашей кастомной вьюхи методы, да?
попробуйте добавить RunOnUiThread и в внутри него Invalidate

Andy
26.06.2018
13:38:03
если в кнопке в MainActivity добавить Invalidate то срабатывает

vladimir
26.06.2018
13:40:18
скорее всего потому что инвалидация была не в главном потоке
попробуйте через RunOnUiThread

Andy
26.06.2018
13:55:09
скрыто Activity.RunOnUiThread(() => {Invalidate();});

vladimir
26.06.2018
13:58:45
это метод объекта Activity, а не статический
надо либо вьюхе передать Activity (что не стоит)
либо пропробовать метот Post у View

Andy
26.06.2018
14:00:00
post вчера пробовал
ну попробую еще

vladimir
26.06.2018
14:00:35
не знаю, как сейчас, но года 2 назад Action уступал Runnable в производительности конкретно в случае RunOnUiThread
если вдруг будут какие-то просадки, то лучше Runnable попробовать
попробуйте ещё
var activity = Context as Activity;

Alex
26.06.2018
14:04:38
Ребята, стоит ли покупать макбук? И нормально ли на нем кодить под XF, XC?

vladimir
26.06.2018
14:06:23

Andy
26.06.2018
14:09:15
буду пробовать
изначально я вообще не собирался рисовать сразу на рабочем канвасе
в винформс я рисовал в буфере bitmap. в который копировался фон
а затем уже когда кадр готов то передавалось на экран
тоже не без проблем, блокировка например
но в итоге работает норма вроде
а тут что то застрял

vladimir
26.06.2018
14:09:54
ну рисуйте тоже в таймере, и потом делайте Invalidate

Google

Andy
26.06.2018
14:10:29
там в винформ правда для копирования использовал функцию с винапи с предварительной блокировки получателя и источника
как тут будет с скоростью - не знаю пока
так и начинал
только один кадр на экране в итоге случайный

vladimir
26.06.2018
14:11:20
нет, вы же рисуете в OnDraw
а я имею в виду, приготовьте Bitmap в таймере, после Invalidate
и в OnDraw просто сделайте canvas.DrawBitmap(bitmap);
забавный факт: все эти работы с canvas, bitmap и т.п. в Android - это всё обёртки поверх нативного skia, встроенного в Android
сравните
https://developer.xamarin.com/api/type/SkiaSharp.SKCanvas/
https://developer.android.com/reference/android/graphics/Canvas

Admin
ERROR: S client not available

Andy
26.06.2018
14:29:43

vladimir
26.06.2018
14:31:24
?

Andy
26.06.2018
14:31:48
правда почему то сам в каждом кадре затирает все что было до этого
ну это уже похоже верное направление
спасибо :)

vladimir
26.06.2018
14:34:56
ну да, там полная перерисовка всегда идёт

Andy
26.06.2018
14:41:30
ну то не проблема
огромное спасибо
наконец сдвинулся
небось когда доберусь до iOS та же хрень будет :)
завтра попробую уже через BackgroundWorker

vladimir
26.06.2018
14:44:37
да используйте везде Skia уже и не парьтесь
в iOS со Skia будете почти также как в Android
общий код и лёгкая переносимость

Kirill
26.06.2018
14:45:38

vladimir
26.06.2018
14:46:59
покажите мне похожие методы на iOS
прямо почти идентичные
ну и первые две строки отсюда читаем

Google

vladimir
26.06.2018
14:47:32
https://skia.org/

Kirill
26.06.2018
14:47:58
Ага уже увидел.
Похожие.. момент

Denis
26.06.2018
14:48:29
Как считаете, нормально когда в json разные объекты приходят в одном поле, скажем в одном случае объект, в другом - массив. Как лучше это обработать средствами newtonsoft.json?


Kirill
26.06.2018
14:49:34
context.MoveTo(rect.Left + tmpTopLeftDiameter, rect.Top);
context.AddLineToPoint(rect.Right - tmpTopRightDiameter, rect.Top);
context.AddQuadCurveToPoint(rect.Right, rect.Top, rect.Right, rect.Top + tmpTopRightDiameter);
context.AddLineToPoint(rect.Right, rect.Bottom - tmpBottomRightDiameter);
context.AddQuadCurveToPoint(rect.Right, rect.Bottom, rect.Right - tmpBottomRightDiameter, rect.Bottom);
context.AddLineToPoint(rect.Left + tmpBottomLeftDiameter, rect.Bottom);
context.AddQuadCurveToPoint(rect.Left, rect.Bottom, rect.Left, rect.Bottom - tmpBottomLeftDiameter);
context.AddLineToPoint(rect.Left, rect.Top + tmpTopLeftDiameter);
context.AddQuadCurveToPoint(rect.Left, rect.Top, rect.Left + tmpTopLeftDiameter, rect.Top);
просто прямоугольник закругленный рисуется. Методы похожи. Ну это по Path. и другие тоже подобны. Аналогичны все +1


Andy
26.06.2018
14:50:04
я очень боюсь перегуза
промолчу про юнити
но и без него меня бесит когда простенькая игрушка 2D жрет неимоверные ресурсы и тормозит жутко
как так можно блин

Denis
26.06.2018
14:50:49


vladimir
26.06.2018
14:52:40
context.MoveTo(rect.Left + tmpTopLeftDiameter, rect.Top);
context.AddLineToPoint(rect.Right - tmpTopRightDiameter, rect.Top);
context.AddQuadCurveToPoint(rect.Right, rect.Top, rect.Right, rect.Top + tmpTopRightDiameter);
context.AddLineToPoint(rect.Right, rect.Bottom - tmpBottomRightDiameter);
context.AddQuadCurveToPoint(rect.Right, rect.Bottom, rect.Right - tmpBottomRightDiameter, rect.Bottom);
context.AddLineToPoint(rect.Left + tmpBottomLeftDiameter, rect.Bottom);
context.AddQuadCurveToPoint(rect.Left, rect.Bottom, rect.Left, rect.Bottom - tmpBottomLeftDiameter);
context.AddLineToPoint(rect.Left, rect.Top + tmpTopLeftDiameter);
context.AddQuadCurveToPoint(rect.Left, rect.Top, rect.Left + tmpTopLeftDiameter, rect.Top);
просто прямоугольник закругленный рисуется. Методы похожи. Ну это по Path. и другие тоже подобны. Аналогичны все +1
какой тип у сontext?
и что-то методы вообще не похоже


Kirill
26.06.2018
14:52:42
ну это понятно, но вот серверсайд говорит - это возможно ?
Ну возможно многое, но это неверно и в приложении придется костыли плодить. В одном объекте одно поле должно быть одного типа, если объекты разные, то и поля могут быть другие, даже с одинаковым названием, но лучше таки разные, что бы небыло путаницы.

vladimir
26.06.2018
14:52:45
покажите canvas из iOS

Kirill
26.06.2018
14:53:01
По сути работа как и с канвасом

Andy
26.06.2018
14:54:32
еще б хамарин умел в JS компилить для броузеров :)

vladimir
26.06.2018
14:55:01
https://github.com/aosp-mirror/platform_frameworks_base/blob/master/graphics/java/android/graphics/Canvas.java
ctrl+f skia

Kirill
26.06.2018
14:56:57

vladimir
26.06.2018
14:59:10

Andy
26.06.2018
15:01:22
не ну бывают исключения и на юнити
но обычно если вижу заставку юнити на смарте - значит будет тормоз
ну для 3D то ладно - меняй смарт :)
а вот для 2D это свинство
еще и иногда простенькие 2D жрут страшно батарею и горячий смарт
хотя на экране могут буть да хоть крестики нолики :)