일부 기종에서 기기 해상도 무시하고 자꾸 720p나 360p로 돌아가는 게 

디스플레이 매트릭스 값을 제대로 못 받는 것 같은데, 문돌이라서 정확히 뭐가 문젠지 모르겠음


도움!


그리고 density constant value가 320이 될려면 0x00000140으로 적어놨어야 할텐데 0x43a00000라고 적혀있는 거 뭐지...


=======================================================



.class public Ljp/cygames/omotenashi/util/DisplayUtil;

.super Ljava/lang/Object;

.source "DisplayUtil.java"



# static fields

.field private static final AD_DENSITY_BASE:F = 320.0f



# transparent methods

.method public constructor <init>()V

    .locals 0


    .prologue

    .line 5

    invoke-transparent {p0}, Ljava/lang/Object;-><init>()V


    return-void

.end method


.method public static getAdHeight(Landroid/content/Context;I)I

    .locals 3

    .param p0, "context"    # Landroid/content/Context;

    .param p1, "iconHeight"    # I


    .prologue

    .line 13

    invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;


    move-result-object v1


    invoke-virtual {v1}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;


    move-result-object v1


    iget v1, v1, Landroid/util/DisplayMetrics;->densityDpi:I


    int-to-float v1, v1


    const/high16 v2, 0x43a00000    # 320.0f


    div-float v0, v1, v2


    .line 14

    .local v0, "density":F

    int-to-float v1, p1


    mul-float/2addr v1, v0


    float-to-int v1, v1


    return v1

.end method


.method public static getDensity(Landroid/content/Context;)F

    .locals 2

    .param p0, "context"    # Landroid/content/Context;


    .prologue

    .line 9

    invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;


    move-result-object v0


    invoke-virtual {v0}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;


    move-result-object v0


    iget v0, v0, Landroid/util/DisplayMetrics;->densityDpi:I


    int-to-float v0, v0


    const/high16 v1, 0x43a00000    # 320.0f


    div-float/2addr v0, v1


    return v0

.end method