0

一定間隔でいくつかの png 画像を使用して壁紙を設定するアプリを作成しました。画面に表示される壁紙のサイズは、すべてのデバイスで正しくありません。9.7 インチのタブレットでは、サイズは左右にスクロールするのに十分なスペースを含む完璧なサイズです。ただし、スマートフォンでは、各画像のごく一部しか表示されません。拡大されているように見えます。

すべてのデバイスで画像を正しいサイズで表示するには、Android にどのようなコーディングが必要ですか?

WallpaperManager がこれを行うと想定していましたが、まだ使用方法がわからないようです。

壁紙を変更する方法は次のとおりです。

myWallpaperManager.setResource(R.drawable.muzdalifah);

壁紙の変更に使用されるすべてのコードを表示する編集:

public class AlarmReceiverChangeImage extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

    /*
     * Make the settings available from the settings xml file.
     */
    SharedPreferences mySettings = PreferenceManager
            .getDefaultSharedPreferences(context);

    /*
     * Allow editing.
     */
    SharedPreferences.Editor editor = mySettings.edit();

    /*
     * Get the settings into variables.
     */
    boolean bln_checkbox_changing_is_activated = mySettings.getBoolean(
            "checkbox_changing_is_activated", false);

    String myCurrentImageName = mySettings.getString("current_image",
            "kabanight1");

    WallpaperManager myWallpaperManager = WallpaperManager
            .getInstance(context.getApplicationContext());

    if (bln_checkbox_changing_is_activated == true) {

        if (myCurrentImageName.equals("tentcity")) {

            try {

                myWallpaperManager.setResource(R.drawable.kabacloseup);
                myCurrentImageName = "kabacloseup";

            } catch (IOException e) {
                e.printStackTrace();
            }

        } else if (myCurrentImageName.equals("kabacloseup")) {
            try {

                myWallpaperManager.setResource(R.drawable.kabanight1);
                myCurrentImageName = "kabanight1";

            } catch (IOException e) {
                e.printStackTrace();
            }

        } else if (myCurrentImageName.equals("kabanight1")) {
            try {

                myWallpaperManager.setResource(R.drawable.madina1);
                myCurrentImageName = "madina1";

            } catch (IOException e) {
                e.printStackTrace();
            }

        } else if (myCurrentImageName.equals("madina1")) {
            try {

                myWallpaperManager.setResource(R.drawable.madina2);
                myCurrentImageName = "madina2";

            } catch (IOException e) {
                e.printStackTrace();
            }

        } else if (myCurrentImageName.equals("madina2")) {
            try {

                myWallpaperManager.setResource(R.drawable.kabaday1);
                myCurrentImageName = "kabaday1";

            } catch (IOException e) {
                e.printStackTrace();
            }

        } else if (myCurrentImageName.equals("kabaday1")) {
            try {

                myWallpaperManager.setResource(R.drawable.uhud1);
                myCurrentImageName = "uhud1";

            } catch (IOException e) {
                e.printStackTrace();
            }

        } else if (myCurrentImageName.equals("uhud1")) {
            try {

                myWallpaperManager.setResource(R.drawable.bus);
                myCurrentImageName = "bus";

            } catch (IOException e) {
                e.printStackTrace();
            }

        } else if (myCurrentImageName.equals("bus")) {
            try {

                myWallpaperManager.setResource(R.drawable.muzdalifah);
                myCurrentImageName = "muzdalifah";

            } catch (IOException e) {
                e.printStackTrace();
            }

        } else if (myCurrentImageName.equals("muzdalifah")) {
            try {

                myWallpaperManager.setResource(R.drawable.tentcity);
                myCurrentImageName = "tentcity";

            } catch (IOException e) {
                e.printStackTrace();
            }

        } else {

            try {
                myWallpaperManager.setResource(R.drawable.madina1);
                myCurrentImageName = "madina1";

            } catch (IOException e) {
                e.printStackTrace();
            }
        } // End if myCurrentImageName.equals("kabaday1").
    } // End if bln_checkbox_changing_is_activated == true.

    editor.putString("current_image", myCurrentImageName); // value to store
    editor.commit();
} // End method onReceive.
4

3 に答える 3

0

myWallpaperManagerこのimageViewはfill_parentである必要があります。そのための固定サイズを与えるRU?

于 2011-11-02T14:15:32.163 に答える
0

画像のレンダリングは、次のものに依存します。

画面サイズ

画面密度

解像度

この状況をどのように処理するかを理解するには、以下の文書をよくお読みください: 複数画面のサポート

于 2011-11-02T13:53:59.797 に答える