Size: a a a

Android NDK (C++) — русскоговорящее сообщество

2020 October 06

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
Arkadi Tolkun
As i remember BitmapFactory.decode* can create sacaled images from file of data without creating big image. do you try this approach ?
ill try that
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
however, this would require that i decompress inside of onDraw
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
i might be able to do it inside of setBitmapImage, tho im not sure if that would work
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
wait that would interfere with my recording since it would store pre-scaled images instead of original scale images
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
tho i could just have it store the cache directly...
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
ok, so it crashed, i fixed the crash, and now it is broken
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
    setImageBitmap: measured
   scale: scaling bitmap from 1440x2844 to 16777215x16777215
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
aaand resolveAdjustedSize cannot be called if the view is not attatched to anything
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
ughhhhhh
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
welp lets try setting it in onViewAttatchedToWindow
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
nope, still doesnt work
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
Arkadi Tolkun
As i remember BitmapFactory.decode* can create sacaled images from file of data without creating big image. do you try this approach ?
any ideas how to do this WITHOUT doing it in onDraw?
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
you can do it in background. after you know exact values of scale. (on measure is a good point).
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
btu you said that i shouldnt create objects in onMeasure
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
also onMeasure can return false values since it is usually called multiple times on the same view before a final measurement
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
so it would also produce multiple un-needed scaled bitmaps
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
which is why i do my scaling in onDraw, as it is the only place i can be gaurenteed of correct measurements
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
how i will solve this problem:
1) onMeasure/onLayout/onDraw calculate what scale we need.
2) If current cached value is not valid - launch coroutin that will prepare image for needed scale
3) when corouting finished - set new cached scale and image and force view to redraw
источник

MG

Matthew Good in Android NDK (C++) — русскоговорящее сообщество
hmmm
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
what function will trigger background task - depends on your layout. onDraw indeed will be best place in most cases
источник