2014年9月7日日曜日

【アプリ開発】画像ファイルなしで背景画像を作る③

以前の記事
【アプリ開発】画像ファイルなしで背景画像を作る①
【アプリ開発】画像ファイルなしで背景画像を作る②
で、プログラムで背景を描画するサンプルアプリを紹介しました。

今回も第3弾として背景の描画を4つ追加してアプリを更新しました(^0^)/

前回同様、今回もその背景のサンプルコードとスクリーンショットを載せていきます(´・ω・`)
画像の容量を節約しつつクールな背景画像として利用できればと思いますので、
参考にオリジナルの背景としてアプリにご利用いただければうれしいです☆


アプリ


















まずは、再度サンプルアプリを紹介します。
今回紹介する背景も追加してアップデート済みですので、まずはお試しください(^0^)/♪



背景パターン(今回追加分)

前回までの10の背景パターンに加えて、以下の4つの背景パターンをアプリに追加しました。
今回は多少実用的な背景ができたので、テーマをつけて紹介します。

□雨あと
 ・多数の線と円の模様(2色、半透明)

□四角模様(左下)
 ・多数の四角形をちりばめた模様(2色、半透明)  

□四角模様(上下)
 ・多数の四角形をちりばめた模様(カラフル、半透明)

□四角模様(真ん中)
 ・多数の四角形をちりばめた模様(1色、半透明)  



雨あと




雨が降って波紋が広がるような画の背景です。

まず線をランダムに描画して、2色の円を右下の方に描画しています。
ランダムに取得したX座標とY座標が左上の座標(0,0)の半径240pxの円の範囲内に入らないようにして描画しています。


 // 線と円の描画
 public void DrawBackground011(Canvas csCanvas)
 {
  Random rand = new Random();

  Paint csPaint = new Paint();
  csPaint.setAntiAlias(true);
  csPaint.setColor(Color.argb(128+rand.nextInt(80),rand.nextInt(256),rand.nextInt(256),rand.nextInt(256)));

  RectF sOval = new RectF();
  for(int x=0; x<=320; x+=20)
  {
   if(x==160) csPaint.setColor(Color.argb(128+rand.nextInt(80),rand.nextInt(256),rand.nextInt(256),rand.nextInt(256)));
   for(int y=0; y<=320; y+=80)
   {
    int nX = 0, nY = 0;
    boolean bLoop=true;
    while(bLoop)
    {
     nX = rand.nextInt(320);
     nY = rand.nextInt(320);
     if(240 < Math.sqrt(nX*nX+nY*nY)) bLoop = false;
    }
    int nSize = rand.nextInt(30)+10;
    sOval.set(nX, nY, nX+nSize, nY+nSize);
    csCanvas.drawOval(sOval, csPaint);
   }
   int nX = rand.nextInt(320);
   int nY = rand.nextInt(320);
   int nSize = rand.nextInt(40);
   csCanvas.drawLine(nX, nY, nX+nSize, nY+nSize, csPaint);

  }

 }