URLの画像を動的に表示するにはbitmapを使ったほうが便利です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 String imageSrc = "http://k.yimg.jp/images/top/sp/logo.gif"; image = new ImageView(context); try { //URLオブジェクトを作成 URL url = new URL(imageSrc); //url.openStream()でInputStreamのインスタンスを生成し,インプットストリームからBitmapを作ります。 Bitmap bitmap = BitmapFactory.decodeStream(url.openStream()); //画像をリソースを設定 image.setImageBitmap(bitmap); } catch (MalformedURLException e) { //エラーが発生時にエラー画像を設定 image.setImageResource(R.drawable.error_image); e.printStackTrace(); } catch (IOException e) { [...]
前回はアンドロイドでhelloworldするアプリを作ってみました。
今回はグラフィックスを描画するアプリケーションを作ってみます。
グラフィックスを描画するアプリケーションの仕様
クリア機能 アンドゥ機能
消しゴムや保存などの機能は将来のバージョンにて実装します。
すべての線は配列に保存します
private ArrayList<Path> pathList = new ArrayList<Path>();
後程のクリアとアンドゥ機能はこの線の配列から要素をクリアしたり削除したりすることで実現します。
public Blackboard01View(Context context) { super(context); //クリックイベントを反応するように setClickable(true); paint = new Paint(); //線のスタイル paint.setStyle(Paint.Style.STROKE); //線の色 paint.setColor(Color.BLACK); //線の細さ paint.setStrokeWidth(2); }
線のスタイルなどを定義します。
ここで、
setClickable(true);
を定義しないと、タッチイベントには反応できないご注意。
描画するの流れは:
タッチイベント ⇒ onTouchEventメソッドの実行 ⇒ 線の保存およびメソッドinvalidate();をコール ⇒ onDrawメソッドの実行 ⇒ 絵の表示
まずは実行の結果を見ていきます。
次はアクティビティクラスとビュークラスの中身
1 2 [...]
Android(アンドロイド)での初めてのHello Worldアプリケーションです。
HelloworldActivityファイル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 package com.pmanual.helloworld; import android.app.Activity; import android.os.Bundle; public class HelloworldActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); [...]
文字列を指定された長さで分割します。長さを指定されない場合、一文字ずつ分割することになります。
これから文字列を分割するサンプルコードを見ていきます。
1 2 3 4 5 6 7 8 9 10 11 <?php $str = "Good Morning"; $result1 = str_split($str); $result2 = str_split($str, 2); print_r($result1); print_r($result2); ?>
実行は結果は次になります。
Array ( [0] => G [1] => o [2] => o [3] => d [4] => [5] => M [6] => o [...]
大文字・小文字を変換するには関数strtolowerとstrtoupperを使います。
これから大文字・小文字を変換するサンプルを見てみます。
1 2 3 4 5 6 7 8 9 10 11 <?php $string = "abcDeFG"; //すべての大文字を小文字に変換する echo strtolower($string); //abcdefg //すべての小文字を大文字に変換する echo strtoupper($string); //ABCDEFG ?>
PHPにおけて、HTMLタグを削除する方法はいろいろあります。
これから、関数strip_tagsと正規表現の二つの方法で文字列中のHTMLタグを削除します。
関数strip_tagsでHTMLタグを削除
1 2 3 4 5 6 7 8 <?php $html = ‘<div class="sidetitlebody"><div class="sidetitle">HTMLテキスト</div></div>’; $noTagText = strip_tags($html); echo $noTagText; ?>
正規表現でHTMLタグを削除
関数preg_replaceを使います。
1 2 3 4 5 6 7 8 <?php $html = ‘<div class="sidetitlebody"><div class="sidetitle">HTMLテキスト</div></div>’; $noTagText = preg_replace(’#<[^<>]+>#s’, ”, $html); echo $noTagText; ?> [...]
配列を分割するサンプルです。
今回は関数array_chunkを使います。関数array_chunkは配列を分割し多次元配列を返します。
<?php $ary = array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ); $groups = array_chunk($ary, 3); print_r($groups); ?>
プロキシ(proxy)経由でfile_get_contentsのサンプルスクリプトです
<?php $options = array( ‘http’ => array( ‘proxy’ => ‘tcp://127.0.0.1:8080′, ‘request_fulluri’ => true, ); ); $context = stream_context_create($options); $contents = file_get_contents(’http://www.yahoo.co.jp’, false, $context); ?>
$contentsの中身をダンプすると、ヤフーのトップページのHTMLコードが表示されます。
ここで、ホストとポートをそれぞれ「127.0.0.1」と「8080」にしています。
関数preg_replaceを利用して、文字列をキャメライズする。
<?php /** * * @param string $str * @return string */ function camelize($str) { return preg_replace(’#_(\w)#e’, ‘ucfirst(\\1)’, strtolower($str)); } $str = ‘Update_goods_list_123′; echo ‘before: ‘ . $str . PHP_EOL; echo ‘after: ‘ . camelize($str); ?>
関数array_key_existsを使って、配列の該当のキーが存在するかどうをチェックできます。
<?php $ary = array( ‘east’ => ‘東’, ‘south’ => ‘南’, ‘west’ => ‘西’, ‘north’ => ‘北’, ); if (array_key_exists(’east’, $ary)) { echo ‘配列$aryに、キーeastの要素が存在します’; } ?>
