面向 Android 时,为啥我的 TextField 在屏幕上如此之小?

Posted

技术标签:

【中文标题】面向 Android 时,为啥我的 TextField 在屏幕上如此之小?【英文标题】:Why is my TextField so small on the screen when targeting Android?面向 Android 时,为什么我的 TextField 在屏幕上如此之小? 【发布时间】:2018-01-21 05:53:31 【问题描述】:

阅读默认大小应为 12 像素。这是关于 DPI 的吗?如何解决?

编辑 谢谢大家,但这似乎与字体大小无关。它看起来像是关于处理 DPI 的事情,因为它也发生在简单的 Sprites 上,而且奇怪的是 android 接缝上的颜色使用反转的 RGB 序列????

Main.hx:

package;

import openfl.display.DisplayObjectContainer;
import openfl.display.Sprite;
import openfl.display.StageAlign;
import openfl.display.StageScaleMode;
import openfl.events.Event;
import openfl.system.Capabilities;
import openfl.text.TextField;
import ru.stablex.ui.UIBuilder;

class Main extends Sprite
   
    private var size: Float = 100;

    private var r: Sprite;
    private var g: Sprite;
    private var b: Sprite;

    public function new()
    
        super();        
        addEventListener(Event.ADDED_TO_STAGE, addedToStage, false, 0, true);
    

    private function addedToStage(event: Event): Void
    
        stage.scaleMode = StageScaleMode.NO_SCALE;
        stage.align = StageAlign.TOP_LEFT;

        r = createSquare(this, 0x00FF0000, size);
        g = createSquare(this, 0x0000FF00, size);
        b = createSquare(this, 0x000000FF, size);

        stage.addEventListener(Event.RESIZE, resize, false, 0, true);
        resize(null);
    

    private function resize(event: Event): Void
    
        r.x = 0;
        r.y = 0;

        g.x = (stage.stageWidth / 2) - (size / 2);
        g.y = (stage.stageHeight / 2) - (size / 2);

        b.x = stage.stageWidth - size;
        b.y = stage.stageHeight - size;
    

    private function createSquare(parent: DisplayObjectContainer, color: Int, size: Float): Sprite
    
        var box: Sprite = new Sprite();

        box.graphics.beginFill(color);
        box.graphics.drawRect(0, 0, size, size);
        box.graphics.endFill();

        parent.addChild(box);

        return box;
    

【问题讨论】:

TextFieldAutoSize.CENTER. help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/… 【参考方案1】:

您可以使用sp 尺寸单位,它在不同的 dpi 屏幕上看起来总是相同的尺寸。

【讨论】:

【参考方案2】:

请试试这个。

 text.autoSize = "center";

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextFieldAutoSize.html

您可以将Sprite 的大小调整为 100%。

Auto size text field with Actionscript 3 -- 这个链接可以帮到你。

【讨论】:

以上是关于面向 Android 时,为啥我的 TextField 在屏幕上如此之小?的主要内容,如果未能解决你的问题,请参考以下文章

Android,当我更新我的图像时,为啥启动器图标和其他图像永远不会改变?

为啥在调试 android google maps 示例时没有调用我的 onLocationChanged() 方法?

为啥我的 android 设备无法连接到 charles 代理,但在我连接到 Fiddler 代理时可以工作?

当我在我的 android 应用程序中从图库中加载图像时,为啥位图返回较小的图像?

当我在 Android 设置中手动禁用位置时,为啥 Android 前台服务会停止?

为啥 Firebase 控制台在 SDK 已与我的 Android 和 iOS 应用程序集成时要求我实施 SDK?