0

bg_repeat.xml:

<?xml version="1.0" encoding="UTF-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/bg_pattern"
android:tileMode="repeat" />

bg_pattern.jpg: bg_pattern.jpg アプリを縦向きモードで起動する 肖像画 と、出力は問題ありません。

そして、横向きモードでアプリを起動すると、出力 (splashScreen BG とメイン BG) が次のようになることがあります: 風景 このモード (LandS) の 2 番目の問題: 向きを縦向きに変更し、戻るボタンを押してアプリを閉じると、現在のアクティビティが更新されます (戻るボタンを押すたびに 1、2、または 4 回まで) (更新とは、現在のアクティビティから現在のアクティビティに戻ることを意味します!)

どうしたの?これはバグですか? (各 2 つの質問)。ちなみに私のsplashScreen.Javaコード:

public class SplashScreen extends Activity {
private int _splashTime = 2000;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
             WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    super.onCreate(savedInstanceState);
    setContentView(R.layout.splashscreen);

    new Handler().postDelayed(new Thread(){
       @Override
       public void run(){
         Intent mainMenu = new Intent(SplashScreen.this, NextAct.class);
         SplashScreen.this.startActivity(mainMenu);
         SplashScreen.this.finish();
         overridePendingTransition(R.anim.fadein, R.anim.fadeout);
       }
    }, _splashTime);
 }
}

結局のところ、私はcustomThemeを使用しています。これはマニフェスト xml コードです。

<activity android:theme="@style/CustomTheme"
        android:label="@string/app_name"
        android:name=".SplashScreen">

これは、styles.xml コードの一部です。

<style name="CustomTheme" parent="@android:style/Theme.Light">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@drawable/bg_repeat</item>
</style>

しかし、問題があるかどうかにかかわらず、この新しいアプリをテストしないでください。

4

1 に答える 1

0

バックグラウンドが繰り返されないことは既知のバグで、ICS で部分的に修正され、JB で完全に修正されました。回避策があります。レイアウトでビットマップをラップしてから、次のように onCreate のコードで繰り返しを設定する必要があります。

    parent = (RelativeLayout) findViewById(R.id.parent);
    Bitmap bg = BitmapFactory.decodeResource(this.getResources(), R.drawable.bg_pattern);
    BitmapDrawable patternRepeat = new BitmapDrawable(bg);
    patternRepeat.setTileModeX(Shader.TileMode.REPEAT);
    patternRepeat.setTileModeY(Shader.TileMode.REPEAT);
    parent.setBackgroundDrawable(patternRepeat);
于 2012-09-05T07:17:55.460 に答える