5

ボタンをクリックするとクイックアクションダイアログを表示する必要があるアプリケーションを開発しています。これが私がそれをどのように実装したいかの例です。

実装したいもの。

今まで、カスタム クイック アクション ダイアログを作成する方法がわかりませんでした。しかし、私は活動と、私が達成しなければならないことに近いものをいくつか使用してみました。これが私が今までやってきたことです。

ボタンをクリックすると、アクティビティに意図が渡されます。

if (v.getId() == R.id.points) {
        Toast.makeText(MainActivity.this, "Clicked on points",
                Toast.LENGTH_SHORT).show();
        Intent i = new Intent(MainActivity.this, PointsActionMenu.class);
        startActivity(i);
    }

そして、私はstyles.xml活動を透明にするために使用しました。

Styles.xml

<style name="Theme.Transparent" parent="android:Theme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>

これらを実装すると、画面にこの UI が表示されます。 ここまでたどり着きました

ここで、2 つの質問があります。

  1. アクティビティを使用し、ニーズに合わせてレイアウトを設計しました。クイックアクションダイアログを使用してこれを実装する簡単な方法はありますか? そのために 2 ~ 3 の例を試しましたが、必要に応じてカスタマイズすることはできませんでした。
  2. アクティビティを使用して実装した限りでは、画面の中央に表示されています。図に示すように、アクティビティのデフォルトの場所を右隅に変更できますか。

どちらの答えも私を助けることができます。

これについては、あらゆる種類のヘルプをいただければ幸いです。

4

2 に答える 2

2

さまざまなデバイスや画面サイズで何が起こるかを検討することをお勧めします。これを使用してピクセルを dp にスケーリングすることを検討してください。

int x = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 80, getResources().getDisplayMetrics());
int y = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 60, getResources().getDisplayMetrics());

編集:

wmlp.x = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 80, getResources().getDisplayMetrics());
wmlp.y = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 60, getResources().getDisplayMetrics());
于 2013-04-20T10:32:37.833 に答える