投稿

【Android】バナー型広告を表示する

イメージ
無料アプリで収益化するために広告を出しているアプリはたくさんあります。 ここでは画面の固定された部分(下部や上部などに)に表示されるバナー型の広告を出す方法についてまとめます。 広告はAdMobというAdSenseのMobile版を利用します。AdSenseと違い特に審査等はありませんので登録後すぐに使えます。 事前準備 まずAdMobで広告ID(adUnitId)を発行する必要があります。 adUnitIdを発行 AdMobへログイン・またはアカウント作成して「アプリを追加」をクリックします。 https://admob.google.com/intl/ja/home/ 新しいアプリの設定 開発段階で導入するので「いいえ」を選択   アプリ名に任意の名前を入力し、プラットフォームにAndroidを選択して「追加」をクリック (AdMobコンソール上の名前なので実際のアプリと異なっていても問題ない)   広告ユニットの追加 「広告ユニットを追加」をクリック   「バナー」を選択 広告ユニット名に任意の名前を入力し、「広告ユニットを作成」をクリック 作成された広告ユニット名をクリック 広告ユニットIDがadUnitIdになります これをソースコードの中で指定するのでコピーしておいてください 実装 ライブラリの追加 app/build.gradle dependenciesに以下のライブラリを追加(バージョンは適時修正) compile 'com.google.android.gms:play-services:10.0.1' 権限の設定 AndroidManifest.xml 以下の権限を追加 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> adUnitIdの定義 values/string.xml adUnitIdを追加(任意) ソースコードにべた書きでも動きますが、v

Android™アプリケーション技術者認定試験ベーシックを取得してきました

Android™アプリケーション技術者認定試験ベーシックを取得してきました。 公式サイト : http://ace.it-casa.org/ace/application-exam/ 試験は選択問題のみですが知識を問われる問題がほとんどでした。実務経験にもよりますが、対策なしでは厳しいと思います。 私は参考書で1ヶ月ほどみっちり予習して挑んで80%ほどの正解率でした。 感覚的には9割以上解けたと思ったんですが思いの外ギリギリでした。あとこの試験あまり最新技術に対応されていないようです。Eclipse時代の問題が出ます。 ここでは私が合格したときの状況をまとめてみます。試験の参考になれば幸いです。 試験の概要 ※詳細は冒頭のリンクをご確認ください。 概要 Androidアプリケーションの開発における知識・スキルを認定する。 問題数 70問 合格ライン 70% 試験時間 90分 合格ライン 70% 受験対象者 受験対象者が定められていますが、実質誰でも受けれます。 Android™技術者 Java開発者 Webアプリ開発者 iPhoneアプリ開発者 モバイル開発者 Android™を学習している学生・教師 大学、専門学校、教育機関など 合格特典 一応特典があります。 ACEロゴマークが使用可能 合格後に認定証と一緒に届く「ロゴマーク申込書 兼使用許諾同意書」で申し込むことによりロゴマークの仕様が可能になります。自身の名刺に入れたりすることができます。詳しくは以下のロゴガイドラインをご確認ください。ご自身のWEBサイト等へは使用できないようです。 http://ace.it-casa.org/ace/about/logo/ Android

【Android】Canvasを使ってルーレットを作る② - Animationクラスとフリックイベント -

イメージ
今回は前回作成したルーレット板にアニメーションを付けてくるくる回してみる部分です。 Animationクラスを継承したArcAnimationからRouletteViewのパラメータを調整しながらonDrawを何度も呼ぶという処理です。 実装 ArcAnimationクラスのソースコード import android.view.animation.Animation; import android.view.animation.Transformation; public class ArcAnimation extends Animation { int base = 20; int count = 0; private MainActivity.RouletteView rouletteView; public ArcAnimation(MainActivity.RouletteView rouletteView) { this.rouletteView = rouletteView; } @Override protected void applyTransformation(float interpolatedTime, Transformation transformation) { count++; int move = base - (count / 25); if(move < 0){ move = 0; } rouletteView.addPos(move); rouletteView.requestLayout(); if(move == 0){ cancel(); rouletteView.setIsAnimation(false); } } } メンバ変数のbaseはパネルを移動させる初期値です。つまりルーレット始動直後は20℃ずつ回転します。 メンバ変数のcountはアニメーションの回数です。このカウンタによりだんだんと回転速度

【Android】Canvasを使ってルーレットを作る① - CanvasにdrawArcでルーレットを描画する -

イメージ
android.graphics.CanvasはAPI Level 1の頃からある最古のAPIです。 これを利用してルーレットアプリを作るまでを記事にしたいと思います。 何回かに分けるので今回はViewを継承したRouletteViewを作り、onDraw()で描画するところまでです。 実装 Viewクラスを継承したRouletteViewクラス.コンストラクタ コンストラクタ public RouletteView(Context context, int num) { super(context); paint = new Paint(); paint.setAntiAlias(true); textPaint = new Paint(Color.DKGRAY); textPaint.setTextSize(60); textPaint.setAntiAlias(true); pos = 0; this.num = num; angle = 360 / num; } パネル用のPaintオブジェクトとテキスト用のPaintオブジェクトを生成します。 setAntiAliasにtrueを設定しておくと文字や線が滑らかに描画されます。 numはパネルの数、angleはパネル1個の角度をそれぞれセットします。 onDraw()メソッド 初回時の処理 if(init == 0) { if(xc == 0.0f) xc = canvas.getWidth() / 2; if(yc == 0.0f) yc = canvas.getHeight() / 2; if(rectF == null) rectF = new RectF(0.0f, yc - xc, canvas.getWidth(), yc + xc); init = 1; } これは初回描画時の処理です。 Canvasの中心点とRectFオブジェクトをMainActivityのメンバ変数にセットし、次回のonDrawからは再利用するようにしています。 rectFはCanvasの横幅にあわせた正方形で生成し、この中にルーレットのパネル(弧)を描画します。 パネルの描画