Uri imageUri = Uri.parse("android.resource://" + getPackageName() + "/drawable/" + "imageName"); Intent intent = new Intent(); intent.setAction(Intent.ACTION_SEND); intent.setType("image/jpeg"); intent.putExtra(Intent.EXTRA_STREAM, imageUri); startActivity(intent);
2014年12月11日木曜日
[Android]別アプリにIntentで画像を送る
今のほとんどのアプリにある共有ボタンにresフォルダ内にある画像をつける
2014年12月9日火曜日
[Titanium]モジュールのビルドができない
Titaniumでモジュールを作成する時に、
build>class>"クラスパス">hoge.class
というファイルが生成されるが
このファイル、Titanium Stadioのビルド>クリーンでは削除されないので
クラスを作成した後にリネームをするときは手動で削除する必要があるようだ。
build>class>"クラスパス">hoge.class
というファイルが生成されるが
このファイル、Titanium Stadioのビルド>クリーンでは削除されないので
クラスを作成した後にリネームをするときは手動で削除する必要があるようだ。
2014年11月23日日曜日
[Unity]EasyTouchを使う
Unity 4.6.0b20
EasyTouch 3.1.10
EasyTouch 3.1.10
- EasyTouchをインポート
- pluginsフォルダはプロジェクトのルートになければならない
- ツールバー > Tools > Hedgehog Team > EasyTouch > Add EasyTouch for C#
HierarchyにEasyTouchが追加される - HierarchyのEasyTouchを円卓Auto-SelectProperties > Pickable LayersをDefaultにする
- タップしたいオブジェクトに以下のコードのスプリクトを追加
オブジェクトにはColliderが必要
using UnityEngine; using System.Collections; public class TapSample : MonoBehaviour { //シングルタップを登録 void OnEnable() { EasyTouch.On_SimpleTap += On_SimpleTap; } //登録の解除 void OnDisable() { UnsubscribeEvent(); } //登録の解除 void OnDestroy() { UnsubscribeEvent(); } void UnsubscribeEvent() { EasyTouch.On_SimpleTap -= On_SimpleTap; } //タップ時に通知を受け取る private void On_SimpleTap(Gesture gesture) { if (gesture.pickObject == gameObject) { //タップ時の処理 } } }
2014年11月22日土曜日
[Unity]Hierarchyにあるスプリクトのインスタンスをロードする
GameObject dataManager = GameObject.Find("/DataManager"); DataManager dataManagerScript = (DataManager)dataManager.GetComponent<datamanager>(); dataManagerScript.hogeIndex += 100;
[Unity]NGUIでUIRootが複数表示され、UIが表示されなくなる問題
Unity 4.5.5f1
NGUI 3.7.3
NGUIでUIが表示されない問題があった。
NGUI 3.7.3
NGUIでUIが表示されない問題があった。
Hierarchyを見るとUIRootが大量に表示してある状態になっていた。
どうやらNGUIで作ったPrefabをHierarchyにドラッグしているときに
UIRootが自動的に作成されるようだ。
こうなるとUIRootが競合してすべてのNGUIのUIが表示されなくなる。
・解決方法
- 自動で作成されたUIRootをすべて削除する
- 使っているUIRootを非Activeにする
- ツールバー > NGUI > Create > UI Root (3D or 2D)を選択(UIRootがアクティブだと追加できない)
- 使っている非ActiveのUIRootの中身を3.で作った新しいUIRootに移動
- 使っている非ActiveのUIRootを削除
で正常に動くが、AnchorsをUnfiedにしているとNoneになるので、再度Unfiedにする必要がある。
2014年11月21日金曜日
[Unity]NGUI UIScrollViewを使う
Unity 4.5.5f1
NGUI 3.7.3
典型的なリストを作りには
Scroll View
>Grid
>>Sprite
>>Sprite
>>Sprite
>>Sprite
のように配置するとリストが作られる
UIScrollView
Content Origin
内部Viewの位置をどの方向にするか
Movement
どちらの方向にスクロールするか
Drag Effect
ドラック時スクロールエリアの最後にきた時に動作、iOSでいうところのBounds
Scroll Wheel Factor
ホイールを動かした時の移動量(マウスホイール限定?)
Momentum Amount
ドラッグ、スマホのフリック時の移動量
Restric Within Panel
ドラッグ時のスクロールは内部のViewに制限されるか
falseにするとどこまででもスクロールできる、普通はtrue
Cancel Drag if Fits
iOSでいうpagingEnabledとおなじ、画像アプリなどでよくある1枚1枚スクロールするかどうか
Smooth Drag Start
ドラッグ開始時にスムーズ処理が入る、体感ではあまり変わらない
iOS Drag Emulation
ゆっくりドラッグした時に移動速度が半分になるらしい、体感ではあまり変わらない
NGUI 3.7.3
典型的なリストを作りには
Scroll View
>Grid
>>Sprite
>>Sprite
>>Sprite
>>Sprite
のように配置するとリストが作られる
UIScrollView
Content Origin
内部Viewの位置をどの方向にするか
Movement
どちらの方向にスクロールするか
Drag Effect
ドラック時スクロールエリアの最後にきた時に動作、iOSでいうところのBounds
Scroll Wheel Factor
ホイールを動かした時の移動量(マウスホイール限定?)
Momentum Amount
ドラッグ、スマホのフリック時の移動量
Restric Within Panel
ドラッグ時のスクロールは内部のViewに制限されるか
falseにするとどこまででもスクロールできる、普通はtrue
Cancel Drag if Fits
iOSでいうpagingEnabledとおなじ、画像アプリなどでよくある1枚1枚スクロールするかどうか
Smooth Drag Start
ドラッグ開始時にスムーズ処理が入る、体感ではあまり変わらない
iOS Drag Emulation
ゆっくりドラッグした時に移動速度が半分になるらしい、体感ではあまり変わらない
2014年11月17日月曜日
[Unity]MiniJSONの使い方
UnityでJSONを扱うにはいくつか種類がある
MiniJSON
JSON Object
LitJSON
NGUIJSON
今回は導入が簡単なMiniJSONを使用する
MiniJSONのファイルをダンロードしてProjectに配置
Deserializeで解析することができる。
Dictionaryの扱いがいまいちなサンプル
MiniJSON
JSON Object
LitJSON
NGUIJSON
今回は導入が簡単なMiniJSONを使用する
MiniJSONのファイルをダンロードしてProjectに配置
Deserializeで解析することができる。
Dictionaryの扱いがいまいちなサンプル
TextAsset textData = (TextAsset)Resources.Load ("jsonData"); string jsonString = (string)textData.text; Dictionary<string object> root = (Dictionary<string,object>)Json.Deserialize (jsonString); List"<"object">" firstList = (List"<"object">")root ["FirstList"];
2014年10月31日金曜日
[Unity]TouchScriptの使い方
ExamplesフォルダにあるSenseにサンプルがある
TapさせたいときはオブジェクトにAdd Component > Tap Gestrure(Script)を追加する
Colliderも追加する
using System; using UnityEngine; using TouchScript.Gestures; public class TapManager : MonoBehaviour { void OnEnable () { GetComponent<tapgesture> ().Tapped += tappedHandler; } void OnDisable () { GetComponent<tapgesture> ().Tapped -= tappedHandler; } private void tappedHandler (object sender, EventArgs e) { Destroy (gameObject); } }
2014年10月30日木曜日
2014年10月29日水曜日
[Unity]Resourcesにあるプレハブを読み込みインスタンスを生成する
Unity 4.5.5f1
プレハブの読み込みは公式にサンプルコードがある
Resources.Load
http://docs.unity3d.com/ScriptReference/Resources.Load.html
以下のコードはInstantiateの戻り値がObjectなのでGameObjectに変換できない、としてコンパイルエラーが発生する
プレハブの読み込みは公式にサンプルコードがある
Resources.Load
http://docs.unity3d.com/ScriptReference/Resources.Load.html
以下のコードはInstantiateの戻り値がObjectなのでGameObjectに変換できない、としてコンパイルエラーが発生する
//コンパイルエラー GameObject instance = Instantiate (Resources.Load不格好だがこんなキャストでいける("enemy"));
//Load可能 Transform instance = (Transform)Instantiate ((Transform)Resources.Loadこれで動作はするが、どこかおかしい気がする("enemy"));
2014年10月28日火曜日
[Unity]PlayerPrefsで保存する
UnityではPlayerPrefsを使ってデータを保存できるが、long、bool、配列には対応していない。
そこで各種の型に対応したPlayerPrefsXがある
ArrayPrefs2
直接cs,jsファイルはDLできないようなので、コピペで作る。
ただこれだとPlayerPrefsとPlayerPrefsXを使い分けるようになるので、PlayerPrefsと同じメソッドを持つよう以下のように編集すると使いやすい
そこで各種の型に対応したPlayerPrefsXがある
ArrayPrefs2
直接cs,jsファイルはDLできないようなので、コピペで作る。
ただこれだとPlayerPrefsとPlayerPrefsXを使い分けるようになるので、PlayerPrefsと同じメソッドを持つよう以下のように編集すると使いやすい
public static bool SetString (string key, string value) { PlayerPrefs.SetString (key, "" + value); return true; } public static String GetString (string key) { return (PlayerPrefs.GetString (key)); } public static bool SetInt (string key, int value) { PlayerPrefs.SetInt (key, value); return true; } public static int GetInt (string key) { return (PlayerPrefs.GetInt (key)); } public static bool SetFloat (string key, float value) { PlayerPrefs.SetFloat (key, value); return true; } public static float GetFloat (string key) { return (PlayerPrefs.GetFloat (key)); }
2014年10月27日月曜日
[Unity]連想配列を使う、配列にあるオブジェクトを削除する
//Unity 4.5.5 //リストから要素を取り出す foreach (Transform child in transformList) { Deubg.log(child.localPosition); } //Destroyで削除するときは連想配列は使えない //C#逆順で連想配列を取り出すことはできない、List.Revers()では配列が逆転するだけ for (int i = transformList.Count - 1; 0 <= i; i--) { //Transformの時はDestory時に.gameObjectを取り出す Object.Destroy (transformList [i].gameObject); }
2014年10月17日金曜日
[Unity]Input.Touchesの使い方
https://www.assetstore.unity3d.com/jp/#!/content/3283
・Input.Touchesはスマホのタッチイベントを最適化したスクリプト
・スワイプ、ピンチ、ドラッグ、回転、ダブルタップ、ロングタップ、ショートタップ、チャージなどを検出することができる
・タッチが検出できないPCでの動作ではマウスと同様の動きをする
・価格は25$
使い方
Unity 4.5.5
Input.Touhes v1.1.5
InputTouches > InputPrefb > GestrueのプレハブをHierachyに追加
Hierachyに適当なオブジェクトを追加して新規Scriptを追加
・Input.Touchesはスマホのタッチイベントを最適化したスクリプト
・スワイプ、ピンチ、ドラッグ、回転、ダブルタップ、ロングタップ、ショートタップ、チャージなどを検出することができる
・タッチが検出できないPCでの動作ではマウスと同様の動きをする
・価格は25$
使い方
Unity 4.5.5
Input.Touhes v1.1.5
InputTouches > InputPrefb > GestrueのプレハブをHierachyに追加
Hierachyに適当なオブジェクトを追加して新規Scriptを追加
//C# サンプルコード //オブジェクトが有効になった時に呼び出される void OnEnable() { //onShortTapE、onDoubleTapEというイベントがあるが、 //onMultiTapEに統合されていおり、 //onShortTapE、onDoubleTapEはいずれ廃止される //リスナーに登録 //通常のタップとマルチタップを検出する IT_Gesture.onMultiTapE += OnMultiTap; //ロングタップ IT_Gesture.onLongTapE += OnLongTap; //チャージング(タップしたままホールド時間を随時検出) IT_Gesture.onChargingE += OnCharging; //チャージング終了(チャージ後に指が離れた) IT_Gesture.onChargeEndE += OnChargeEnd; //ドラッグ開始 IT_Gesture.onDraggingStartE += OnDraggingStart; //ドラッグ中 IT_Gesture.onDraggingE += OnDragging; //ドラッグ終了 IT_Gesture.onDraggingEndE += OnDraggingEnd; } //オブジェクトが無効になった時に呼び出される void OnDisable() { //リスナーの登録を解除 IT_Gesture.onMultiTapE -= OnMultiTap; IT_Gesture.onLongTapE -= OnLongTap; IT_Gesture.onChargingE -= OnCharging; IT_Gesture.onChargeEndE -= OnChargeEnd; IT_Gesture.onDraggingStartE -= OnDraggingStart; IT_Gesture.onDraggingE -= OnDragging; IT_Gesture.onDraggingEndE -= OnDraggingEnd; } //以下のメソッドでタッチを検出する void OnMultiTap(Tap tap){ //do a raycast base on the position of the tap //対象のオブジェクト(shortTapObj)がタップされているか調べる、 //1つ1つ調べるのは結構面倒くさい、タップだけならAssetStoreのTouchScriptが良いかも Ray ray = Camera.main.ScreenPointToRay(tap.pos); RaycastHit hit; if(Physics.Raycast(ray, out hit, Mathf.Infinity)){ //if the tap lands on the shortTapObj, then shows the effect. if(hit.collider.transform==shortTapObj){ //place the indicator at the object position and assign a random color to it Indicator.transform.position=shortTapObj.position; Indicator.startColor=GetRandomColor(); //emit a set number of particle Indicator.Emit(30); } //if the tap lands on the doubleTapObj else if(hit.collider.transform==doubleTapObj){ //check to make sure if the tap count matches if(tap.count==2){ //place the indicator at the object position and assign a random color to it Indicator.transform.position=doubleTapObj.position; Indicator.startColor=GetRandomColor(); //emit a set number of particle Indicator.Emit(30); } } } }
2014年7月31日木曜日
[iOS]UIImageをリサイズする
+ (UIImage *)resize:(UIImage *)image rect:(CGRect)rect { UIGraphicsBeginImageContext(rect.size); [image drawInRect:rect]; UIImage* resizedImage = UIGraphicsGetImageFromCurrentImageContext(); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetInterpolationQuality(context, kCGInterpolationHigh); UIGraphicsEndImageContext(); return resizedImage; }
2014年7月29日火曜日
[iOS]ディスプレイと画像の比率を求める
- (float)getScale :(CGSize)displaySize :(CGSize)imageSize { float scale = 0.0; if (imageSize.height > displaySize.height) { scale = displaySize.height / imageSize.height; } else { scale = imageSize.height / displaySize.height; } return scale; }
[iOS]メールを送信
- (void)sendMail if([MFMailComposeViewController canSendMail] == YES) { //メーラーが使用できるかどうか MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init]; [controller setSubject:@"subject"]; //題名 [controller setMessageBody:@"message" isHTML:NO]; //本文 controller.mailComposeDelegate = self; //成功、失敗時にdelegateを送る [self presentViewController:controller animated:YES completion:nil]; //ViewContrllerとして立ち上げる } } - (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error { [self dismissViewControllerAnimated:YES completion:nil]; //終了時にViewContrllerを閉じる return; }
2014年6月30日月曜日
[iOS]UISliderとCGAffineTransform
UISliderでCGAffineTransformを使用するとつまみがタップできなくなるタイミングがある
再現率は100%ではない
ちょっと調べてみたが対策法はなさそうなのでUIScrollViewなどで代用するしかなさそうだ
2014年5月20日火曜日
[Unity]Unityをはじめて触ってみた時のメモ
3日ほどUnityのiOS、Androidアプリを作ってみて、
コイン落としのようなアプリができたので使用感とハマったポイントを書き出してみる
・公式の日本語ドキュメントは豊富
・Assetを使うと時間を短縮できる
・言語は3つある
Javascript
チュートリアルや書籍の多くがJavascriptで書かれているが
UnityScriptと呼ばれるぐらいHTMLで使用するJavascriptと離れているのでちょっと使いにくい
Boo
Pythonっぽい言語になっている、これで書いている人は少ないようだ
C#
ドキュメントも豊富で結局C#を選択した
・全てのassetやサンプルプログラムがスマホ用に最適化されているわけではない
Unityでは複数のプラットフォームに対応するために
[Project Setting]>[Input]から呼び出せる入力用Wrapperが標準で用意されているために
コントローラー、ジョイスティックやキーボードの入力を簡単に設定できる
例、プレイヤーが右に移動するスプリクトを組むだけで
コントローラー右、ジョイスティックを右に傾ける、キーボード"D"キー
の3つが対応される
ただしタッチパネルの場合は例外でコードを入力する必要がある。
function Update () {
for (var touch : Touch in Input.touches) {
//TODO touch event
}
}
タッチイベント用のAssetも豊富にある
オススメはこちら
TouchScript
タップ、ドラッグ、ロングタップなどに対応
スマホ以外にもWindows系列にも対応している
サンプルの動作が自然な感じなので作成するアプリに役立ちそう
コイン落としのようなアプリができたので使用感とハマったポイントを書き出してみる
・公式の日本語ドキュメントは豊富
・Assetを使うと時間を短縮できる
・言語は3つある
Javascript
チュートリアルや書籍の多くがJavascriptで書かれているが
UnityScriptと呼ばれるぐらいHTMLで使用するJavascriptと離れているのでちょっと使いにくい
Boo
Pythonっぽい言語になっている、これで書いている人は少ないようだ
C#
ドキュメントも豊富で結局C#を選択した
・全てのassetやサンプルプログラムがスマホ用に最適化されているわけではない
Unityでは複数のプラットフォームに対応するために
[Project Setting]>[Input]から呼び出せる入力用Wrapperが標準で用意されているために
コントローラー、ジョイスティックやキーボードの入力を簡単に設定できる
例、プレイヤーが右に移動するスプリクトを組むだけで
コントローラー右、ジョイスティックを右に傾ける、キーボード"D"キー
の3つが対応される
ただしタッチパネルの場合は例外でコードを入力する必要がある。
function Update () {
for (var touch : Touch in Input.touches) {
//TODO touch event
}
}
タッチイベント用のAssetも豊富にある
オススメはこちら
TouchScript
タップ、ドラッグ、ロングタップなどに対応
スマホ以外にもWindows系列にも対応している
サンプルの動作が自然な感じなので作成するアプリに役立ちそう
2014年4月21日月曜日
[AndroidSDK]エラー"R cannot be resolved to a variable"
"R cannot be resolved to a variable"というエラーが出る場合の対処方
Rファイルが更新されてないのが原因っぽいが、そうでも無いこともあって意味不明
以下は経験則に基づいた対処法
・Clean>Build
一番お手軽だけど解決されないことが多い
・eclipseを終了>プロジェクトフォルダ内のbinとgenを削除>eclipse起動
これで解決することが結構ある
・エラーの起こるソースに"import com.example.android.R;"を追加する
プロジェクトを作って1回目のBuild時にこれを入れるとeclipseを再起動しなくてすむ
・↑の逆で「エラーの起こるソースの"import com.example.android.R;"を外す
--NEW--
・エラーの起こるソースのパッケージ名を変更>エラーが出たままなのでパッケージ名を戻す
でなぜかエラーがとれたことがあった
・Android2.1など古い段階でに作られたプロジェクトに起こる可能性が高いような気がする
新しいAndroidSDKで新規にプロジェクトを作成し必要なデータのみコピーしたところ発生しなくなった
Rファイルが更新されてないのが原因っぽいが、そうでも無いこともあって意味不明
以下は経験則に基づいた対処法
・Clean>Build
一番お手軽だけど解決されないことが多い
・eclipseを終了>プロジェクトフォルダ内のbinとgenを削除>eclipse起動
これで解決することが結構ある
・エラーの起こるソースに"import com.example.android.R;"を追加する
プロジェクトを作って1回目のBuild時にこれを入れるとeclipseを再起動しなくてすむ
・↑の逆で「エラーの起こるソースの"import com.example.android.R;"を外す
--NEW--
・エラーの起こるソースのパッケージ名を変更>エラーが出たままなのでパッケージ名を戻す
でなぜかエラーがとれたことがあった
・Android2.1など古い段階でに作られたプロジェクトに起こる可能性が高いような気がする
新しいAndroidSDKで新規にプロジェクトを作成し必要なデータのみコピーしたところ発生しなくなった
2014年4月19日土曜日
[iOS]Xcode5.1でアプリ申請時に出たエラー
Could not find any content hosted eligible apps.
iTunesConnectで設定したIn-App Purchaseがappleのホスト設定になっていない(自前サーバーからコンテンツをダウンロードするようになっている)
In-App Purchaseの設定で"Hosting Content with Apple"をYESにすることで解消
ERROR ITMS-9000 : "Invalid Image Paht - No image found at the path
referenced under key 'CFBundleIcons': 'icon-Small' at SoftwareAssets/SonftwareAsset(MZItemspSoftwareAssetPackeage)
ERROR ITMS-9000のエラーは検索すると色々な原因があるらしい、
今回はアイコン関係のエラーでicon-Smallなどのファイルパスが見つからないとのこと
もちもん設定はしてあるが認識できてない、元のプロジェクトがXcode3またはXcode4で作成した事が原因っぽい
対策として
[app-name]-Info.plistから
Icon files、Icon files (iOS-5)、CFBundleIcons~ipadなどのicon関係のファイルをすべて削除
プロジェクト設定のターゲットからGeneral>App Iconsの項目から"Use Asset Catalog"をクリック
Asset CatalogはXcode5から入った機能で、スプラッシュやアイコンの設定がGUIで分かるようになる便利機能
プロジェクトにImages.xcassetsが加わるので選択する
見たまま表示上のサイズのアイコンをドラッグアンドドロップで完了
iTunesConnectで設定したIn-App Purchaseがappleのホスト設定になっていない(自前サーバーからコンテンツをダウンロードするようになっている)
In-App Purchaseの設定で"Hosting Content with Apple"をYESにすることで解消
ERROR ITMS-9000 : "Invalid Image Paht - No image found at the path
referenced under key 'CFBundleIcons': 'icon-Small' at SoftwareAssets/SonftwareAsset(MZItemspSoftwareAssetPackeage)
ERROR ITMS-9000のエラーは検索すると色々な原因があるらしい、
今回はアイコン関係のエラーでicon-Smallなどのファイルパスが見つからないとのこと
もちもん設定はしてあるが認識できてない、元のプロジェクトがXcode3またはXcode4で作成した事が原因っぽい
対策として
[app-name]-Info.plistから
Icon files、Icon files (iOS-5)、CFBundleIcons~ipadなどのicon関係のファイルをすべて削除
プロジェクト設定のターゲットからGeneral>App Iconsの項目から"Use Asset Catalog"をクリック
Asset CatalogはXcode5から入った機能で、スプラッシュやアイコンの設定がGUIで分かるようになる便利機能
プロジェクトにImages.xcassetsが加わるので選択する
見たまま表示上のサイズのアイコンをドラッグアンドドロップで完了
2014年4月18日金曜日
[iOS]XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1
というエラーが出た
調べてみるといろいろな原因があるようだが
今回の原因はソースコードが不足、インポートしたモジュールのソースコードが赤マークになっていた。
というエラーが出た
調べてみるといろいろな原因があるようだが
今回の原因はソースコードが不足、インポートしたモジュールのソースコードが赤マークになっていた。
2014年4月17日木曜日
2014年4月9日水曜日
[iOS]1つの画像からretina対応、非対応の画像を作る
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"image_file" ofType:@"png"]; UIImage *image = [[UIImage alloc] initWithContentsOfFile:imageFilePath]; //resizeImageがRetina対応の画像となる UIImage *resizeImage = [UIImage imageWithCGImage:image.CGImage scale:2.0 orientation:UIImageOrientationUp];
2014年4月8日火曜日
[iOS]UIGestureRecognizerがtouchイベントを発生させない
UIGestureRecognizerを新しく作ったviewにaddしても有効にならないタイミングがある(?)
とりあえずNSTimerでviewが作られた後にaddすればうまくいった
とりあえずNSTimerでviewが作られた後にaddすればうまくいった
2014年3月14日金曜日
[iOS]Xcode5.1(iOS7.1)で旧バージョンのプロジェクトで警告が発生
Xcode5.1にアップデートした時に、
Xcode5.0で作成したプロジェクトに大量の警告が入るが、
プロジェクトのクリアをすれば警告が直る。
・その他
UITableViewのbackgroundcolorが無効になった
>UITableViewCellで色を変更
Xcode5.0で作成したプロジェクトに大量の警告が入るが、
プロジェクトのクリアをすれば警告が直る。
2014年3月9日日曜日
[iOS]UIColorからUIImageを作成する
stackoverflow.comより
- (void)viewDidLoad { [super viewDidLoad]; UIImage *image = [self createImageFromUIColor:[UIColor blackColor]]; } - (UIImage *)createImageFromUIColor:(UIColor *)color { //1x1のBitmapを作成する CGRect rect = CGRectMake(0, 0, 1, 1); UIGraphicsBeginImageContext(rect.size); CGContextRef contextRef = UIGraphicsGetCurrentContext(); //Bitmapを塗りつぶし CGContextSetFillColorWithColor(contextRef, [color CGColor]); CGContextFillRect(contextRef, rect); //UIImageに変換 UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return image; };
2014年2月26日水曜日
[iOS]Xcode5でiPadのスプラッシュが表示されない問題
Xcode5.0.2でスプラッシュ画像追加のためProject>Launch Imagesから
Defaults-Portrait、Defaults-Portrait@2x、Default-Portrait.png、Default-Portrait@2x.png
の画像を設定するもスプラッシュは表示されない
どうやらiOS6.1以下の各種画像とiOS7.0以上の画像が同じリソースを使うと表示されないようだ
対処法
Defaultの画像4つををコピーして適当な名前にする
Launch Images>iPad>各種(iOS 6.1 and Prior)にコピーした画像を設定する
設定時に、リネームするか、と聞いてくるので自動でリネームさせる
iPadのスプラッシュ画像が表示される、良かった
Defaults-Portrait、Defaults-Portrait@2x、Default-Portrait.png、Default-Portrait@2x.png
の画像を設定するもスプラッシュは表示されない
どうやらiOS6.1以下の各種画像とiOS7.0以上の画像が同じリソースを使うと表示されないようだ
対処法
Defaultの画像4つををコピーして適当な名前にする
Launch Images>iPad>各種(iOS 6.1 and Prior)にコピーした画像を設定する
設定時に、リネームするか、と聞いてくるので自動でリネームさせる
iPadのスプラッシュ画像が表示される、良かった
2014年1月27日月曜日
[iOS]UISliderで値の変化時にイベントを取得できない
UISliderの値の変化時に処理を行う時に
[slider addTarget:self action:@selector(sliderValueChange:) forControlEvents:UIControlEventValueChanged]
とすれば、良いはずだがUISliderでは– addTarget:action:forControlEvents:
が反応しないので
[slider sendActionsForControlEvents:UIControlEventValueChanged];
とするとイベントをキャッチできる
[slider addTarget:self action:@selector(sliderValueChange:) forControlEvents:UIControlEventValueChanged]
とすれば、良いはずだがUISliderでは– addTarget:action:forControlEvents:
が反応しないので
[slider sendActionsForControlEvents:UIControlEventValueChanged];
とするとイベントをキャッチできる
2014年1月16日木曜日
[AndroidSDK]フォルダ操作関連
//フォルダの中身を確認 File dir = mContext.getFilesDir(); String[] list = dir.list(); Log.d(TAG, "list " + Arrays.toString(list)); //フォルダの作成 File makeDirFile = new File(dir.getPath() + "/" + "folder_name"); if (!makeDirFile.mkdir()) { //フォルダ作成エラー }
登録:
投稿 (Atom)