0

これに対する非常に多くの回答を検索して見つけましたが、アクティビティにどのように挿入されるかを示すものはありません。

私のアクティビティには tabsadapter と viewpager (fragmentpageradapter) があります。それでおしまい。そして、このようにダイアログとしてスタイルされるように設定しました

    <style name="Theme.PopupTheme" parent="android:Theme.Holo.Light.Dialog">
    <item name="android:windowIsFloating">false</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowSoftInputMode">stateAlwaysHidden</item>
    <item name="android:windowActionModeOverlay">true</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowNoTitle">false</item>
    <item name="android:windowActionBar">true</item>
    <item name="android:backgroundDimEnabled">true</item>
    <item name="android:padding">2sp</item>
    <item name="android:divider">@drawable/transparent</item>

現在、これは問題なく機能しますが、側面と底面がほとんど透過せずにディスプレイのフルサイズを占めることを除けば. このアクティビティにはレイアウトはなく、viewpager xml のみです

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/viewPager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

このため、私はプログラムでアプリのサイズを調整することに縛られています。これは、ピクセルで設定することによってのみ(私のスキルレベルで)管理できることがわかりました。特定のデバイスを対象としている場合は見栄えがよくなりますが、設定したピクセルの量によっては、S3 の場合と比較して、Nexus 10 ではアプリがひどいように見えます。

dipを使用してプログラムでこれを行うにはどうすればよいですか?

4

4 に答える 4

0

ピクセルをディップに、またはその逆に変換し、画面サイズに応じて計算に適用します。これを試してみてください。

ディップするピクセル:

float scale = context.getResources().getDisplayMetrics().density;
int pixel = (int) (pixel * scale + 0.5f);

ピクセルへのディップ:

int dip = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dip,
                getApplicationContext().getResources()
                        .getDisplayMetrics());
于 2013-08-07T08:31:58.083 に答える