0

以下のコードを使用して、ホームキーと全画面表示をオーバーライドしようとしています。ホームキーのロックは正常に機能していますが、通知バーを非表示にできません (アクティビティを全画面表示できません)。

public class ScreenLockDemo extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.screenlock);

    }



@Override
public void onAttachedToWindow()
{  
  this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
    super.onAttachedToWindow();  

}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    if(keyCode==KeyEvent.KEYCODE_BACK){
        return true;
    }
    if(keyCode==KeyEvent.KEYCODE_HOME){
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

}

AndroidManifest.xml :

 <activity
        android:name="com.antivirus.antitheft.ScreenLockDemo"
         android:configChanges="touchscreen|keyboard|keyboardHidden|navigation|orientation"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
       >              
    </activity>

![上記のコードを出力すると、img に示すようにレイアウトの上部がかわいく表示されます。][1]

また、ハンドラーを使用してアクティビティをフルスクリーンで setType しようとしていますが、メニューキーをオーバーライドできませんでした。私を助けてください。

前もって感謝します。

4

4 に答える 4

0

以下のコードを使用して問題を解決する

@Override
 public void onAttachedToWindow() {
  // TODO Auto-generated method stub
     super.onAttachedToWindow();  

     handler.postDelayed(mUpdateUiMsg, 100);
    //this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);     
 }


 public boolean onKeyDown(int keyCode, KeyEvent event) {
  // TODO Auto-generated method stub
  if(keyCode==KeyEvent.KEYCODE_BACK){
   return true;
  }
  if(keyCode==KeyEvent.KEYCODE_HOME){
   return true;
  }

  return super.onKeyDown(keyCode, event);
 }


 private Runnable mUpdateUiMsg = new Runnable() {
        public void run() {


            getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);


         }
    };
于 2012-06-26T12:39:53.273 に答える
0

アクティビティを全画面表示に設定する最も簡単な解決策は、マニフェストに設定することです。例として、マニフェスト内のアクティビティ セクションに次を追加します。

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

したがって、次のようになります。

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".blahActivity"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
于 2012-04-27T07:14:50.053 に答える
0

以下のコードを使用して問題を解決する

@Override
 public void onAttachedToWindow() {
  // TODO Auto-generated method stub
     super.onAttachedToWindow();  

     handler.postDelayed(mUpdateUiMsg, 100);
    //this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);     
 }


 public boolean onKeyDown(int keyCode, KeyEvent event) {
  // TODO Auto-generated method stub
  if(keyCode==KeyEvent.KEYCODE_BACK){
   return true;
  }
  if(keyCode==KeyEvent.KEYCODE_HOME){
   return true;
  }

  return super.onKeyDown(keyCode, event);
 }


 private Runnable mUpdateUiMsg = new Runnable() {
        public void run() {


            getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);


         }
    };

私の場合、onAttachedToWindow() をオーバーライドした後、見つけたoverridePendingTransition(int enterAnim, int exitAnim)、または

<style name="Theme.NoTitleBar.WithColoredSpinners" parent="@android:style/Theme.NoTitleBar">
    <item name="android:spinnerDropDownItemStyle">@style/SpinnerItem.DropDownItem</item>
    <item name="android:windowAnimationStyle">@style/AnimationActivity</item>
</style>

うまくいきませんでしたが、これらのコードを使用して問題を解決しましたが、その理由はまだわかりません。そして同じように、私は何をすべきか、そしてonAttachedToWindow()それがどのように影響するかを知りませんか?

于 2012-09-07T08:29:18.743 に答える
-1

setContentView(xml)の前にこのコードを試してください

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().requestFeature(Window.FEATURE_NO_TITLE);

うまくいけば、これはあなたのために働くでしょう。

于 2012-04-27T07:28:00.113 に答える