あおたんのグルグルライブカレンダーをリリースしました。
こちらからダウンロードできます。
待ち受け画面でいつでもあおたんに会えますよ!!
あおたんのおやぢくさいけど、ちょっと哀愁漂う姿と、はなちゃんのつれなさそうなクールビューティなイラストシリーズでお届けする、グルグルまわるカレンダー壁紙!
背景は十二ヶ月分をテーマにしていますがお気に入りのものを自由に選べるようになっています。
<activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation"> </activity>
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <!-- 広告表示用のLinearLayout --> <LinearLayout android:id="@+id/admob" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" /> <!-- ここから下は任意 --> <TextView android:id="@+id/header" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/admob" android:gravity="center" android:text="Header" /> .... </RelativeLayout>ここで追加したのは6~8行目で、この例ではViewの一番上に広告が表示されるようにLayoutしてみました。
private final static String AD_UNIT_ID = "...............";
//AdModからもらったパブリッシャーID
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); //広告用のLinearLayoutを含むLayout
//AdMob
AdView adView = new AdView(this, AdSize.BANNER, AD_UNIT_ID); //広告Viewを作成
LinearLayout layout = (LinearLayout)findViewById(R.id.admob); //LinearLayoutを探す
layout.addView(adView); //広告Viewを追加
AdRequest request = new AdRequest(); //広告のリクエストを作成
//request.setGender(Gender.FEMALE); //いろんな設定がここでできる。
//request.setTesting(true); //Debug Mode リリース時は外す!
adView.loadAd(request); //リクエスト発行
...
}
AdRequestに設定するパラメータで広告のターゲッティングなどが行えるようです。public class GoogleMapTestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String mapurl = "geo:38.230844,140.323316"; //←ここの書き方で動作が微妙に変わる!
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW); intent.setClassName("com.google.android.apps.maps","com.google.android.maps.MapsActivity"); intent.setData(Uri.parse(mapurl));
startActivity(intent);
}
}
ここで、mapurlの部分の書き方によりいろんなパターンが指定できます。package com.sample.Application;
import android.app.Activity;
import android.os.Bundle;
import com.sample.library.SampleLibrary;
public class SampleApplicationActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SampleLibrary sampleLibraryClass = new SampleLibrary();
sampleLibraryClass.test(); //SampleLibraryのtest()メソッドを実行
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sample.library"
android:versionCode="1"
android:versionName="1.0">
</manifest>
public class MainActivity extends Activity {
private Stack<View> childView;
/*********************************************************
* Application実行時の最初のイベント。
* 最初の画面を作成し、WindowListのTopに設定する。
*
* @see android.app.Activity#onCreate(android.os.Bundle)
*********************************************************/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
childView = new Stack<View>();
childView.clear();
// 最初のViewを表示
pushContentView(R.layout.user_first_view);
}
/*********************************************************
* 戻るボタンが押されたイベント処理。
*
* @see android.app.Activity#onBackPressed()
*********************************************************/
@Override
public void onBackPressed() {
if(!popContentView()) {
// 取り除く前のViewがない場合は、
//本来のBackPressed(=finish())を実行(必須ではない)
super.onBackPressed();
}
}
/*********************************************************
* 子Viewを追加する。
*
* @param view 追加する子View
*********************************************************/
public void pushContentView(View view) {
childView.push(view);
super.setContentView(childView.peek());
}
/*********************************************************
* 子Viewを追加する
*
* @param resid 追加する子のリソースID
*********************************************************/
public void pushContentView(int resid) {
// 最初の子Viewを作成
LayoutInflater inflater
= (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
View view = (View)inflater.inflate(resid, null);
childView.push(view);
super.setContentView(childView.peek());
}
/*********************************************************
* 子tViewを取り除く
*
* @return true 取り除き成功 / false 取り除けなかった
*********************************************************/
public boolean popContentView() {
if(childView.size() > 1) {
// ViewStackに前の画面がある場合はPop
childView.pop();
//最上位のViewをsetContentView()する。
setContentView(childView.peek());
return true;
}
return false;
}
}
public class UserFirstView extends LinearLayout {
/*********************************************************
* コンストラクタ(LinearLayout)
*
*********************************************************/
public UserFirstView(final Context context, AttributeSet attrs) {
super(context, attrs);
}
/*********************************************************
* Inflaterを使ってViewを実体化する場合は
* onFinishInflate()以降で findViewByIdをする。
*
* @see android.view.View#onFinishInflate()
*********************************************************/
@Override protected void onFinishInflate() {
//Buttonの処理を追加
Button buttonNext = (Button)findViewById(R.id.buttonNext);
buttonNext.setOnClickListener(new OnClickListener() {
/*********************************************************
* ボタンがクリックされた
* →次の画面に遷移する
*
* @see android.view.View.OnClickListener#onClick(android.view.View)
*********************************************************/
@Override public void onClick(View v) {
MainActivity mainActivity = (MainActivity)getContext();
// 次のViewを表示
mainActivity.pushContentView(R.layout.user_next_view);
}
});
super.onFinishInflate();
}
}
public class UserNextView extends LinearLayout {
/*********************************************************
* コンストラクタ(LinearLayout)
*
*********************************************************/
public UserNextView(final Context context, AttributeSet attrs) {
super(context, attrs);
}
/*********************************************************
* Inflaterを使ってViewを実体化する場合は
* onFinishInflate()以降で findViewByIdをする。
*
* @see android.view.View#onFinishInflate()
*********************************************************/
@Override protected void onFinishInflate() {
//Buttonの処理を追加
Button buttonNext = (Button)findViewById(R.id.buttonPrev);
buttonNext.setOnClickListener(new OnClickListener() {
/*********************************************************
* ボタンがクリックされた
* →前の画面に遷移することもできる
*
* @see android.view.View.OnClickListener#onClick(android.view.View)
*********************************************************/
@Override public void onClick(View v) {
MainActivity mainActivity = (MainActivity)getContext();
// 前のViewを表示
mainActivity.popContentView();
}
});
super.onFinishInflate();
}
}
<?xml version="1.0" encoding="utf-8"?> <com.sample.UserFirstView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="FirstView"> </TextView> <Button android:id="@+id/buttonNext" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Next"> </Button> </com.sample.UserFirstView>