Rebol GUI on Android Displays Too Small

2019-05-27 03:36发布

问题:

So I've discovered Rebol, and am thrilled that it runs on Android. When I create a GUI, though, the GUI first pops up with the top left corner in the center of the screen, and I cannot move or resize the window. If I rotate my phone to a horizontal display, the window resizes itself to the screen properly. Then I rotate my phone to a vertical display, and the window fills the screen properly.

But everything on the window is minuscule--almost too small to interact with via finger taps.

I haven't seen anyone else complaining about this issue. How can I fix it? I want the widgets to display the same size they do in every other application that runs on my phone. And, of course, having the window open correctly, so that I don't have to rotate my phone twice to get it to display properly, would be nice, too.

I downloaded Rebol for Android (r3-droid.apk) here.

I then downloaded the GUI support here.

Phone specs:

  • Samsung Galaxy Note 3
  • Android Version 5.0

The code to generate the GUI:

REBOL [title: "Widgets on Screen"]
do %r3-gui.r3
view [
    field
    area
    check
    radio
    text-list
    text-table
    drop-down
    button
]

回答1:

Check out the demo. Type demo at the bottom field and run it to see how to adjust the faces to suit the screen size. But as giuliolunati says, this build is over 2 years old and not publicly maintained.

On my HP 21" Android slate the faces come up the correct size, but it runs very sluggishly.

Your best bet maybe is to watch the Red Android branch which is promising a GUI very soon.

REBOL []

site: http://development.saphirion.com/experimental/

load-gui
;do site/r3-gui.r3


dpi: gui-metric 'screen-dpi
gui-metric/set 'unit-size dpi / 96
scr: round/floor (gui-metric 'work-size) - gui-metric 'title-size

stylize [
    but: button [
        facets: [
            init-size: 100x48
            max-size: 260x48
            min-size: 24x34
            align: 'center
        ]
    ]
]

view/options [
    title "R3/Droid demos"
    vpanel [
        but "R3GUI widgets" on-action [
            if request/custom/options "R3GUI widgets" [
                vtight [
                    vgroup [
                        prg: progress 50%
                        sld: slider 50% attach 'prg options [min-size: 100x22]
                        button "button"
                        toggle "toggle"
                        drop-down [
                            "Select an option"
                            "Option 1"
                            "Option 2"
                            "Option 3"
                            "Option 4"
                            "Option 5"
                        ]
                        htight [
                            vtight [
                                radio "radio 1"
                                radio "radio 2"
                                radio "radio 3"
                            ]
                            vtight [
                                check "check 1"
                                check "check 2"
                                check "check 3"
                            ]
                        ]
                        field "Some input text"
                        area "more text here"
                        text-list [
                            "text list"
                            "line 2"
                            "line 3"
                            "line 4"
                            "line 5"
                            "line 6"
                            "line 7"
                            "line 8"
                            "line 9"
                            "last line"
                        ]
                        text-table ["1" 80 "2" 50  "3"][
                            ["text table" "a" "10"]
                            ["line 2" "b" "9"]
                            ["line 3" "c" "8"]
                            ["line 4" "d" "7"]
                            ["line 5" "e" "6"]
                            ["line 6" "f" "5"]
                            ["line 7" "g" "4"]
                            ["line 8" "h" "3"]
                            ["line 9" "i" "2"]
                            ["last line" "j" "1"]
                        ] options [show-header: false]
                    ] options [max-hint: [480 auto] box-model: 'frame]
                ] options [max-hint: guie/max-pair pane-align: 'center]
                when [rotate] on-action [
                    win: arg/gob/data
                    bg: first faces? win
                    win/facets/max-hint:
                    bg/facets/max-hint:
                        as-pair arg/offset/x guie/max-coord
                    update-face/no-show/content bg
                ]
            ]["I like that!" "Close"][offset: 0x0 max-hint: reduce [scr/x guie/max-coord]]
            [browse http://development.saphirion.com/donations/ ]
        ]
        but "tile game" on-action [
            request/custom "Downloading files..." [
                title "Loading game..."
                when [enter] on-action [
                    game: load/all site/tile-game.r
                    unview/all
                    gui-metric/set 'unit-size 1x1
                    do game
                ]
            ]["" "Close"]
        ]
        but "graphics test" on-action [
            request/custom "Downloading files..." [
                title "Loading script..."
                when [enter] on-action [
                    script: load/all site/draw-test.r
                    unview/all
                    gui-metric/set 'unit-size 1x1
                    do script
                ]
            ]["" "Close"]
        ]
        but "performace survey" on-action [
            request/custom "Downloading files..." [
                title "Loading test..."
                when [enter] on-action [
                    app: load/all site/dt-01.r
                    unview/all
                    gui-metric/set 'unit-size 1x1
                    do app
                ]
            ]["" "Close"]
        ]
        pad
    ]  options [box-model: 'frame]
    hpanel [
        button "I want donate" on-action [browse http://development.saphirion.com/donations/ ]
        button "close" on-action [
            close-window face
        ]
    ] options [align: 'right]
    when [rotate] on-action [
        win: arg/gob/data
        bg: first faces? win
        win/facets/max-hint:
        bg/facets/max-hint:
            as-pair arg/offset/x max arg/offset/y win/facets/intern/min-heights/1
        update-face/no-show/content bg
    ]
][
    offset: 0x0
    max-hint: scr
]


回答2:

Also for future viewers, you may want adjust the gui-metric dpi. I found 128 worked on the Android Note3.

gui-metric/set 'unit-size dpi / 128