約 3,434,108 件
https://w.atwiki.jp/miottia/pages/35.html
ユーティリティ コンテンツ ユーティリティコンテンツ 概要 罫線付きのEditTextクラス 現在のアプリをGoogle Playを開く 現在のアプリを共有する インストール先クラス マッシュルームのラッパークラス キャンディーのラッパークラス 概要 このページに記載されているすべてのソースコードはパブリックドメインとします内容は無保証です 罫線付きのEditTextクラス テキストメモ(ウィジェット)で使用している罫線付きEditText レイアウトのXMLで直接使うことを想定 import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.widget.EditText; /** * 罫線付きEditTextクラスです。 br */ public class RuledEditText extends EditText { /** 罫線の色 */ private static final int RULE_COLOR = Color.rgb(200, 200, 200); /** Paint */ private Paint mPaint; /** * コンストラクタです。 br * * @param context * コンテキスト */ public RuledEditText(Context context) { super(context); // フィールドの初期化 init(); } /** * コンストラクタです。 br * * @param context * コンテキスト * @param attrs * 属性セット */ public RuledEditText(Context context, AttributeSet attrs) { super(context, attrs); // フィールドの初期化 init(); } /** * コンストラクタです。 br * * @param context * コンテキスト * @param attrs * 属性セット * @param defStyle * スタイル */ public RuledEditText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // フィールドの初期化 init(); } /** * フィールドの初期化処理です。 br */ private void init() { // Paintを生成 mPaint = new Paint(); mPaint.setStyle(Paint.Style.STROKE); mPaint.setColor(RULE_COLOR); mPaint.setAntiAlias(false); mPaint.setStrokeWidth(0); } /** * {@inheritDoc} */ @Override protected void onDraw(Canvas canvas) { try { // 左右パティングを取得 final int left = getTotalPaddingLeft(); final int right = getMeasuredWidth() - getTotalPaddingRight(); // 線を引ける場合 if(left right) { // 描画する行数を計算 final int lineHeight = getLineHeight(); final int lineCount = Math.max(getMeasuredHeight() / lineHeight, getLineCount()); // 2行以上ある場合 if(lineCount 1) { // 描画座標の設定 final float[] pts = new float[(lineCount - 1) 2]; int index = 0; int y = lineHeight + getTotalPaddingTop() + 1; for(int i = 1; i lineCount; i++) { // 座標を詰める pts[index] = left; pts[index + 1] = y; pts[index + 2] = right; pts[index + 3] = y; index += 4; y += lineHeight; } // 線の描画 canvas.drawLines(pts, mPaint); } } } catch(Exception e) { // 例外を握りつぶす } // 親クラスの描画 super.onDraw(canvas); } } 現在のアプリをGoogle Playを開く /** * Google Playを開きます。 * * @param context コンテキスト */ public static void showGooglePlay(Context context) { // Intentを生成 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(Uri.parse("market //details?id=" + context.getPackageName())); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // インテントを投げる try { context.startActivity(intent); } catch(Exception e) { } } 現在のアプリを共有する /** * アプリを共有します。 * * @param context コンテキスト * @param appName アプリ名のリソースID */ public static void shareThisApp(Context context, int appName) { // アプリ名を取得 String app = context.getString(appName); // パッケージ名を取得 String pkg = context.getPackageName(); // Intentを生成 Intent intent = new Intent(); intent.setAction(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, app + " https //play.google.com/store/apps/details?id=" + pkg + " "); // Intentを投げる try { context.startActivity(intent); } catch(Exception e) { } } インストール先クラス リフレクションを使ってインストール先を取得する SD移動はAndroid 2.2以降だがこのクラスでの判定はAndroid2.1以前でも使用可能 import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; /** * インストール先クラス */ public final class InstallLocation { /** インストール先(自動) */ public static final int INSTALL_LOCATION_AUTO; /** インストール先(内部メモリのみ) */ public static final int INSTALL_LOCATION_INTERNAL_ONLY; /** インストール先(外部メモリ優先) */ public static final int INSTALL_LOCATION_PREFER_EXTERNAL; /** インストール先(未指定) */ public static final int INSTALL_LOCATION_UNSPECIFIED; /** インストール先(未サポート) */ public static final int INSTALL_LOCATION_UNSUPPORTED = -1; /** 外部ストレージフラグ */ public static final int FLAG_EXTERNAL_STORAGE; // 利用可否フラグ private static final boolean mIsAvailable; // ApplicationInfoを優先するかのフラグ private static final boolean mIsAppInfo; // コンストラクタ private InstallLocation() { } // 静的初期化子 static { // 変数の初期化 int auto = 0; int internal_only = 0; int prefer_external = 0; int unspecified = 0; int external_storage = 0; boolean isAvailable = false; boolean isAppInfo = false; try { // 各フィールドをリフレクションで読み出す auto = PackageInfo.class.getField("INSTALL_LOCATION_AUTO").getInt(PackageInfo.class); internal_only = PackageInfo.class.getField("INSTALL_LOCATION_INTERNAL_ONLY").getInt(PackageInfo.class); prefer_external = PackageInfo.class.getField("INSTALL_LOCATION_PREFER_EXTERNAL").getInt(PackageInfo.class); unspecified = PackageInfo.class.getField("INSTALL_LOCATION_UNSPECIFIED").getInt(PackageInfo.class); external_storage = ApplicationInfo.class.getField("FLAG_EXTERNAL_STORAGE").getInt(ApplicationInfo.class); // すべて読み出せた場合はtrue isAvailable = true; } catch(Exception e) { } try { // ApplicationInfo.installLocationをリフレクションで読み出す ApplicationInfo.class.getField("installLocation"); // 存在した場合はApplicationInfoのフィールドを使う isAppInfo = true; } catch(Exception e) { } // 定数に格納 INSTALL_LOCATION_AUTO = auto; INSTALL_LOCATION_INTERNAL_ONLY = internal_only; INSTALL_LOCATION_PREFER_EXTERNAL = prefer_external; INSTALL_LOCATION_UNSPECIFIED = unspecified; FLAG_EXTERNAL_STORAGE = external_storage; mIsAvailable = isAvailable; mIsAppInfo = isAppInfo; } /** * インストール先取得を取得します。 * * @param pkg パッケージ情報を指定します。 * @param app アプリケーション情報を指定します。 * @return インストール先を返します。 */ public static int getInstallLocation(PackageInfo pkg, ApplicationInfo app) { // 使用不可の場合 if(!mIsAvailable) { return INSTALL_LOCATION_UNSUPPORTED; } int res = INSTALL_LOCATION_UNSUPPORTED; // ApplicationInfoを優先する場合 if(mIsAppInfo) { try { // ApplicationInfo.installLocationを取得 res = ApplicationInfo.class.getField("installLocation").getInt(app); } catch(Exception e) { } } else { try { // PackageInfo.installLocationを取得 res = PackageInfo.class.getField("installLocation").getInt(pkg); } catch(Exception e) { } } return res; } } マッシュルームのラッパークラス Simejiで利用できるマッシュルームのラッパークラス import android.app.Activity; import android.content.Intent; /* intent-filter action android name="com.adamrocker.android.simeji.ACTION_INTERCEPT" /action category android name="com.adamrocker.android.simeji.REPLACE" /category category android name="android.intent.category.DEFAULT" /category /intent-filter */ /** * マッシュルームラッパークラス */ public final class Mushroom { // Action定数 private static final String ACTION_INTERCEPT = "com.adamrocker.android.simeji.ACTION_INTERCEPT"; // Extra定数 private static final String EXTRA_REPLACE_KEY = "replace_key"; // コンストラクタ private Mushroom() { } /** * マッシュルームに対応したIntentを持っているか調べます。 * * @param activity 対象のActivityを指定します。 * @return マッシュルーム対応ならtrue、そうでない場合はfalseを返します。 */ public static boolean hasMushroomIntent(Activity activity) { // Intentを取得 Intent intent = activity.getIntent(); // Intentがnullの場合 if(intent == null) { return false; } // Actionを取得 String action = intent.getAction(); // Actionがnullの場合 if(action == null) { return false; } // Actionが一致しない場合 if(!action.equals(ACTION_INTERCEPT)) { return false; } return true; } /** * 置換前文字列を取得します。 * * @param activity 取得元のActivityを指定します。 * @return 置換前文字列を返します。エラーの場合nullを返します。 */ public static String getOldString(Activity activity) { // Intentを取得 Intent intent = activity.getIntent(); // nullの場合は終了 if(intent == null) { return null; } // Actionを取得 String action = intent.getAction(); // Actionが一致しない場合は終了 if(action == null || !action.equals(ACTION_INTERCEPT)) { return null; } // 置換前文字列を取得 return intent.getStringExtra(EXTRA_REPLACE_KEY); } /** * 置換後文字列を設定します。 * * @param activity 設定先のActivityを指定します。 * @param text 設定する文字列 */ public static void setNewString(Activity activity, String text) { // Intentを生成 Intent intent = new Intent(); // 置換後文字列を設定 intent.putExtra(EXTRA_REPLACE_KEY, text); // 結果として設定 activity.setResult(Activity.RESULT_OK, intent); } } キャンディーのラッパークラス Simejiで利用できるキャンディーのラッパークラス import java.util.ArrayList; import org.json.JSONArray; import android.app.Activity; import android.content.Intent; /* intent-filter action android name="com.adamrocker.android.simeji.ACTION_INJECTION" /action category android name="com.adamrocker.android.simeji.CANDIDATES" /category category android name="android.intent.category.DEFAULT" /category /intent-filter */ /** * キャンディーラッパークラス */ public class Candy { // Action定数 private static final String ACTION_INJECTION = "com.adamrocker.android.simeji.ACTION_INJECTION"; // Extra定数 private static final String EXTRA_CANDIDATE_KEY = "candidate_key"; // コンストラクタ private Candy() { } /** * キャンディーに対応したIntentを持っているか調べます。 * * @param activity 対象のActivityを指定します。 * @return キャンディー対応ならtrue、そうでない場合はfalseを返します。 */ public static boolean hasCandyIntent(Activity activity) { // Intentを取得 Intent intent = activity.getIntent(); // Intentがnullの場合 if(intent == null) { return false; } // Actionを取得 String action = intent.getAction(); // Actionがnullの場合 if(action == null) { return false; } // Actionが一致しない場合 if(!action.equals(ACTION_INJECTION)) { return false; } return true; } /** * 候補文字列を設定します。 * * @param activity 設定先のActivityを指定します。 * @param list 候補文字列のリストを指定します。 */ public static void setCandidateStrings(Activity activity, ArrayList String list) { // JSONArrayを生成 JSONArray array = new JSONArray(list); // Intentを生成 Intent intent = new Intent(); // 候補文字列を設定 intent.putExtra(EXTRA_CANDIDATE_KEY, array.toString()); // 結果として設定 activity.setResult(Activity.RESULT_OK, intent); } /** * 候補文字列を設定します。 * * @param activity 設定先のActivityを指定します。 * @param array 候補文字列の配列を指定します。 */ public static void setCandidateStrings(Activity activity, String[] array) { // ArrayListを生成 ArrayList String list = new ArrayList String (); // ArrayListに文字列を詰める for(String text array) { list.add(text); } // 別のバージョンを呼び出す setCandidateStrings(activity, list); } }
https://w.atwiki.jp/cwcwiki/pages/713.html
戦場のヴァルキュリア3 EXTRA EDITION 戦場のヴァルキュリア3 EXTRA EDITIONゲームID ゲームID _S ULJM-05957 _G Battlefield s Valkyrie 3 -EXTRA EDITION-
https://w.atwiki.jp/blenderwiki/pages/21.html
CG Texture http //www.cgtextures.com/ テクスチャーを探すときの定番 PlainTextures.com フリーで4000以上あります。詳細は blender.jp より。 他には以下より探すことができます 無料でテクスチャやパターン画像を手に入れられるサイトいろいろ http //kachibito.net/web-design/29-free-texture-site.html ShaderMap 1枚の画像からディスプレイスメントマップ,ノーマルマップ,スペキュラーマップなどを簡単に生成できるソフト。有料だが安いので、気になる人は見てみるといいと思います。無料バージョンは同様のことができるがCUIなので面倒かも。 adding depth to textures blender 2.5 part 1 テクスチャーを立体に見せるチュートリアル。 2/2 Blender 2.5 Tutorial TexturePainting textureを複数重ねてペイントすることによって道を表現しています The Basics of Unwrapping - HD UVtextureの基本。分かりやすいです。 上に戻る
https://w.atwiki.jp/mediachamp/pages/89.html
otbedit タブインタフェースのテキストエディタ (95/98/NT4.0/2000/XP) テキストエディタ otbeditは,タブインタフェースのテキストエディタです。 主な機能として, ・Copy, Paste, Cut ・Undo, Redo(回数無制限) ・検索,置換 ・矩形選択 ・キーワード補完 ・SJIS/EUC/JISコードに対応 ・CRLF(\r\n)/LF(\n)/CR(\r)の3種類の改行コードに対応 ・印刷 ・キーワードのカラー表示(HTML, C++, Java, Perl, SQL) ・行の折り返しの設定(指定桁数,ウィンドウの右端) ・行番号,列番号の表示 ・行間隔,文字間隔の設定 ・フォント設定,色設定 ・クリッカブルURL ・キー割り当てのカスタマイズ ・ファイルから検索(grep機能) ・キーボードマクロ があります。 公式サイト ver.3.2.0.0 (2007-01-29) より、フリーウェアになった。 ver.4.0.0.0 (2007-02-02) より、ポータブル化された。
https://w.atwiki.jp/neosrchelp/pages/36.html
概要 テキストボックスの内容を変数に保存します 入力値などを使用する場合などに使います パラメーター name 保存する変数名を指定します target 対象のテキストボックス名を指定します 【例】 SetInputText name バリュー target テキスト
https://w.atwiki.jp/noir09/pages/6.html
Text (*R18) 巨人 ・エレリ1* ・エルリ1* 銀魂 ・近土1* ・沖土1* ・土山1* ・銀土2* ・土山2* ・土銀1* ・土山3* ・銀土3*
https://w.atwiki.jp/nigamushi/pages/19.html
TEXTコマンド コマンド 構文 TEXT TEXT X,Y,String CENTER TEXT CENTER TEXT X,Y,String SET TEXT FONT SET TEXT FONT Fontname SET TEXT SIZE SET TEXT SIZE Point size SET TEXT OPAQUE SET TEXT OPAQUE SET TEXT TRANSPARENT SET TEXT TRANSPARENT SET TEXT TO NORMAL SET TEXT TO NORMAL SET TEXT TO ITALIC SET TEXT TO ITALIC SET TEXT TO BOLD SET TEXT TO BOLD SET TEXT TO BOLDITALIC SET TEXT TO BOLDITALIC PERFORM CHECKLIST FOR FONTS PERFORM CHECKLIST FOR FONTS TEXT BACKGROUND TYPE Return Integer=TEXT BACKGROUND TYPE() TEXT FONT$ Return String=TEXT FONT$() TEXT SIZE Return Integer=TEXT SIZE() TEXT STYLE Return Integer=TEXT STYLE() TEXT WIDTH Return Integer=TEXT WIDTH(String) TEXT HEIGHT Return Integer=TEXT HEIGHT(String) ASC Return Integer=ASC(String) BIN$ Return String=BIN$(Value) CHR$ Return String=CHR$(Value) HEX$ Return String=HEX$(Value) LEFT$ Return String=LEFT$(String,Value) LEN Return Integer=LEN(String) LOWER$ Return String=LOWER$(String) MID$ Return String=MID$(String,Value) RIGHT$ Return String=RIGHT$(String,Value) STR$ Return String=STR$(Value) UPPER$ Return String=UPPER$(String) VAL Return Float=VAL(String) SPACE$ Return String=SPACE$(Number of Spaces)
https://w.atwiki.jp/darkbasic/pages/13.html
TEXTコマンド コマンド 構文 TEXT TEXT X,Y,String CENTER TEXT CENTER TEXT X,Y,String SET TEXT FONT SET TEXT FONT Fontname SET TEXT SIZE SET TEXT SIZE Point size SET TEXT OPAQUE SET TEXT OPAQUE SET TEXT TRANSPARENT SET TEXT TRANSPARENT SET TEXT TO NORMAL SET TEXT TO NORMAL SET TEXT TO ITALIC SET TEXT TO ITALIC SET TEXT TO BOLD SET TEXT TO BOLD SET TEXT TO BOLDITALIC SET TEXT TO BOLDITALIC PERFORM CHECKLIST FOR FONTS PERFORM CHECKLIST FOR FONTS TEXT BACKGROUND TYPE Return Integer=TEXT BACKGROUND TYPE() TEXT FONT$ Return String=TEXT FONT$() TEXT SIZE Return Integer=TEXT SIZE() TEXT STYLE Return Integer=TEXT STYLE() TEXT WIDTH Return Integer=TEXT WIDTH(String) TEXT HEIGHT Return Integer=TEXT HEIGHT(String) ASC Return Integer=ASC(String) BIN$ Return String=BIN$(Value) CHR$ Return String=CHR$(Value) HEX$ Return String=HEX$(Value) LEFT$ Return String=LEFT$(String,Value) LEN Return Integer=LEN(String) LOWER$ Return String=LOWER$(String) MID$ Return String=MID$(String,Value) RIGHT$ Return String=RIGHT$(String,Value) STR$ Return String=STR$(Value) UPPER$ Return String=UPPER$(String) VAL Return Float=VAL(String) SPACE$ Return String=SPACE$(Number of Spaces)
https://w.atwiki.jp/programhack/pages/15.html
Android関連 AlertDialogをモーダルにする setCancelableメソッドをfalseにすることで、戻るボタンやダイアログ以外の場所をクリックされても ダイアログが閉じないようにできる 参考サイト ダイアログは永遠に(1) - AlertDialog http //ichitcltk.hustle.ne.jp/gudon/modules/pico_rd/index.php?content_id=51 画像を扱う際のOutOfMemory対策 androidではメモリが少ないため、すぐメモリリークが起こる。 そのため、普段よりもメモリを気にして開発することが必須になる。 参考サイト Androidにおける画像の取扱い http //lablog.lanche.jp/archives/192 一定時間で自動的に閉じるポップアップ String msg1 = Util.getString((Context)thisActivity,R.string.M120); final AlertDialog dialog = new AlertDialog.Builder((Context)thisActivity) .setTitle(Util.getString((Context)thisActivity,R.string.I000)) .setMessage(msg1) .create(); Handler handler = new Handler(); Runnable r = new Runnable() { public void run() { dialog.dismiss(); setResult(RESULT_OK); finish(); } }; dialog.show(); handler.postDelayed(r, 5000); ちょっとしたポップアップ 以下でポップアップを表示できる Toast.makeText(context, "なんかの文字", Toast.LENGTH_LONG).show(); ソフトウエアキーボード制御 キーボードでテキストボックスが隠れないように 実装したかったができなかった。 ↓これを参考にしたが、だめorz http //ssnohibi.blog122.fc2.com/blog-entry-121.html 参考にしたサイトをあげておく。 参考 http //blog.global-eng.co.jp/android/2011/06/03/%E3%82%BD%E3%83%95%E3%83%88%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%E3%81%AE%E5%88%B6%E5%BE%A1/ http //ssnohibi.blog122.fc2.com/blog-entry-121.html ライフサイクル Activityイベントが呼ばれる順番。 参考 TechBooster 図解Androidのライフサイクルとプラットフォーム http //techbooster.jpn.org/andriod/environment/323/ ソフトキーボード表示時、画面タッチでキーボードをしまう InputMethodManagerのhideSoftInputFromWindow()を使用。 対象のEditTextに適用する InputMethodManager inputMethodManager = (InputMethodManager)act.getSystemService(Context.INPUT_METHOD_SERVICE); //ソフトキーボードを閉じるように設定 for(int txtId txtIdArray){ EditText txt = (EditText)lil.findViewById(txtId); inputMethodManager.hideSoftInputFromWindow(txt.getWindowToken(),0); } strokeタグを利用して枠線を描画することができます。 「android width」にて枠線の幅を設定 「android color」にて線の色を設定 corners にて枠線の角の設定を行います。 paddingにて描画領域を内側に寄せます。 枠線に内側のビューが重ならないように、枠線の幅の分はpaddingで寄せるようにします。 solid にて枠線の内側の塗りつぶしを行います。 shapeタグを使用することにより、グラデーションや枠線、角丸などの効果を持った背景形状を定義できます。 画像の色からカラーコードを調べる方法 ペイントで画像を開いて、スポイトのマークで吸い取ったら 色→色の編集→色の作成 に吸い取ったカラーのRGB値(10進数)が出てます。 それをRGBの順で16進数になおしてつなげる OnTouchListenerのonTouchイベント戻り値 押しっぱなしのとき、falseを返すと一度で処理が終わるが、 trueを返すとまた処理に入る widgetを非表示にして詰める方法 TextView txt = (TextView) findViewById(R.id.txt); txt.setVisibility(View.GONE); ↑消したいやつにGONEを指定すると、非表示にして詰めるようにできる。 OutputStream#write(int) バッファ使用 めっちゃ速さが変わる!!! 以下参考↓ http //d.hatena.ne.jp/guangda/20100129/1264746893 java高速化方法 http //adgjm.net/its/java/pa.htm android キャプチャ取り方 eclipseでDDMSタブのDevicesタブにある対象の端末を選択し、 カメラのアイコンをクリック。 別ウィンドウが表示され、キャプチャできる。 スクロールバー常に表示 android fadeScrollbars="false" 一気にトップに戻るときなどに生成したアクティビティを削除する方法 画像ファイルが解放されなくて、メモリリークになったが、 下記のサイト解決できそう。 http //inujirushi123.blog.fc2.com/blog-entry-44.html 遷移するときにインテントフラグをセットすればいいらしい。 前回状態を維持したまま、前の画面に戻る 前回状態で前の画面に戻る場合、 startActivityForResult()でリクエストコードを渡して、判定するやり方がある。 TOP画面に戻るなど、中間の画面を飛ばして遷移する場合は、 この方法で中間のActivityを残さないで遷移できる。 (中間のActivityが残るとメモリがどんどん消費される→メモリリークorz) 参考 AIRIA Android 画面遷移 http //gallop.ddo.jp/blog/airia/2009/06/android-1.html 関連書籍 プログラミングAndroid
https://w.atwiki.jp/vocaloidenglishlyric/pages/647.html
【Tags Miku keeno tB B】 Original Music title bitter Romaji music title bitter Music Lyrics written, Voice edited by :keeno Music arranged by :keeno Singer(s) 初音ミク (Hatsune Miku) Append Dark Click here for the original Japanese Lyrics English Lyrics (translated by Swifty): A light flickering in my world is Surely the scar of the love once I had in my youth Only your voice came to mind and burst I can never take back the entangled day by now Though I pretend to be tough and smile, it runs over from my heart and it won't stop I'm always like this, repeating that Among the shining street lights, see the memory and your shadow got dim Though I want you to smile a little more I thought I could already walk through the space of the town glowed orange alone I'm still staying here. I can hear your voice That just makes me impossible to move, hey In the world where is too large to be alone I was holding my knees and crying Please, someone, save me out Before the night ends Find me Now the street lights went out and the sky grew brighter Why won't my tears stop? Though I just want you to be my side just for a while That won't be answered Among the shining street lights, see the memory and your shadow got dim Though I want you to smile a little more Romaji lyrics (transliterated by Swifty): hitori de ikiteikutsumoridatta mirai ni doushite kimi wa mada tonari ni itekureru no deshou masshirona shatsu ni shimikonda makkurona shimi mitaini nokoru ushirometai uso ya yaruse nai kanjou ni fureyoutoshite mata namida ga deta nee koko ni atta hikari wa kieta "shikata ga nai yo nante" furi de utsuro ni natta hibi no sukima ni miushinatta jibun no katachi hitori de ikiteiku kakugo wo kimeta noni doushite kimi no koe ga kou mo kiki taku naru no deshou makkurana heya ni sashikonda gaitou no akari mitaini yureru minikui kokoro wo okubyouna shinzou wo "kimi no tame" nante ka-ten de kakushite tsukame nai mirai ni se wo mukete kore de ii da nante kidottemiru kedo hitori de ikiteiku hazu datta mirai ni doushite kimi wa mada tonari ni itekureru no deshou nee kimi ga son'na fuu ni warau tabi ni don'na nayami mo doudemo yokunatteiku hitori ja ikite ike nai nante koto wa nai keredo koushite kimi to tsunaida te wo hanashi taku nai no desu