facebook twitter hatena line email

Android/ライブ壁紙作成/ランチャーボタン設置方法

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

設定内にランチャーボタンを設置

デフォルトで作成されるlayout/main.xmlをabout.xmlに変更

  • res/AndroidManifest.xml
<activity android:label="@string/app_name" android:name=".AboutActivity" android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation">
   <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>
  • src/info/nonip/AndroidLiveWallService.java
package info.nonip.AndroidLiveWallService;
import android.app.Activity;
import android.os.Bundle;
public class AboutActivity extends Activity
{
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

画像にする場合

  • layout/about.xmlを以下のように変更
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical" android:background="#000000" android:layout_width="match_parent" android:layout_height="match_parent"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent">
        <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/about" android:scaleType="fitStart" android:adjustViewBounds="true" />
    </FrameLayout>
</LinearLayout>

左クリックで、壁紙設定ボタンを出す。

  • src/AboutActivity.java
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.Menu;
import android.view.MenuItem;
import android.content.Intent;
import android.widget.Toast;
public class AboutActivity extends Activity
{
  /** メニューID  */
  private final int MENU_ID1 = Menu.FIRST;
  private final int MENU_ID2 = Menu.FIRST + 1;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // タイトルウィンドウ削除
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.about);
  }
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    boolean result = super.onCreateOptionsMenu(menu);
    menu.add(MENU_ID1, Menu.FIRST, Menu.NONE, "壁紙を設定する");
    return result;
  }
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case MENU_ID1:
      Intent intent = new Intent(Intent.ACTION_MAIN);
      intent.setClassName("com.android.wallpaper.livepicker", "com.android.wallpaper.livepicker.LiveWallpaperListActivity");
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      startActivity(intent);
      Toast.makeText(getApplication(), getString(R.string.app_name) + "をお選びください。", Toast.LENGTH_LONG).show();
      //Activity終了
      finish();
      break;
    }
    return super.onOptionsItemSelected(item);
  }
}