09 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 11

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【Android】久々のネイティブアプリ・・・ 

こんにちは。
大坂です。

クリスマスですね。皆様いかがお過ごしでしょうか。
平日だから普通に仕事してる人ばかりですかね・・。

古いアプリとかもうあんまり見られてないと思いきや「輝度チェン」で問い合わせが来たので、その直し部分のネタを。
このブログ見てる人でネイティブアプリのネタがうれしい人なんていなさそうですけども…。

①明るさの自動調整の設定を取得
//現在の明るさの自動調整の設定を取得
int screenBrightnessMode = 0;
try {
screenBrightnessMode = Settings.System.getInt(cr,Settings.System.SCREEN_BRIGHTNESS_MODE);
} catch (SettingNotFoundException e) {
e.printStackTrace();
}

②アプリ使用時に最近使ったアプリに入れない(AndroidManifest.xmlを編集)
<activity
android:name="com.example.hogehoge.HogeActivity"
android:excludeFromRecents="true">
</activity>
赤字の部分をつけると最近使ったアプリに入らなくなりますね。

とまぁ、お問い合わせをいただいたのでこの辺を対応して輝度チェンをバージョンアップしたいと思います。
まだまだ使っていただいているユーザ様がいてありがたいことです。

そして今年のブログは今日でおしまいです。
来週木曜日は…1月1日…だと…。
し、新年の挨拶だけになりそうですが許してくださいね!

ではでは、皆様よいお年を~ノシ
スポンサーサイト

Category: 開発日記(Java)

tb 0 : cm 0   

【Java】ImageViewのアニメーション 

こんにちは。大坂です。

今週も雪予報でしたが、降りませんでしたね。よかった・・・ですが!
うちは家族がインフルで何やら大変なことになってます・・・。

さて今週の話題ですが、JavaアプリでのImageViewのアニメーションについてです。
まぁ使いどころはそれなりにあるのかなということでご紹介をば。

扱えるアニメーションは以下。
・移動【TranslateAnimation】
・透明度【AlphaAnimation】
・回転【RotateAnimation】
・スケール変更【ScaleAnimation】

と後は上記アニメーションを組み合わせて使用できる【AnimationSet】ですね。

では簡単に使い方を。

まずはImageViewの準備

XmlにImageViewを追加
<ImageView id="@+id/imageView"
android:src="@drawable/test"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

javaコードのXml読み込み後に
ImageView imageView = (ImageView)findViewById(R.id.imageView);


といった感じでImageViewを準備します。
まぁこの辺は基本なのでわかってる方ばかりでしょうが。

では以下アニメーションの使い方です。
移動【TranslateAnimation】

// TranslateAnimation(float fromX, float toX, float fromY, float toY)
// X方向に10、Y方向に20移動させる
TranslateAnimation transAnim = new TranslateAnimation(0f, 10f, 0f, 20f);
// 動作する時間を設定(ms)
transAnim.setDuration(2000);
// アニメーションを繰り返す回数を設定。指定しない場合は1回のみ。無限に繰り返す場合は‐1
transAnim.setInterpolator(new CycleInterpolator(10));
// 準備したImageViewでアニメーションを開始する。
imageView.startAnimation(transAnim);



透明度【AlphaAnimation】

// AlphaAnimation(float fromAlpha, float toAlpha)
// Alpha値を1~0.1にする。
AlphaAnimation alphaAnim = new AlphaAnimation(1f, 0.1f);
// 動作する時間を設定(ms)
alphaAnim.setDuration(3000);
// アニメーションを繰り返す回数を設定。指定しない場合は1回のみ。無限に繰り返す場合は‐1
alphaAnim.setInterpolator(new CycleInterpolator(-1));
// 準備したImageViewでアニメーションを開始する。
imageView.startAnimation(alpha);



回転【RotateAnimation】

// RotateAnimation(float from, float to, float pivotX, float pivotY)
// 360度回転。回転の中心X30、Y90の位置
RotateAnimation rotateAnim = new RotateAnimation(0, 360, 30, 90);
// 動作する時間を設定(ms)
rotateAnim.setDuration(1000);
// 準備したImageViewでアニメーションを開始する。
imageView.startAnimation(rotate);



スケール変更【ScaleAnimation】

// ScaleAnimation(float fromX, float toX, float fromY, float toY, float pivotX, float pivotY)
// XYを2倍にする
ScaleAnimation scaleAnim = new ScaleAnimation(1,2,1,2, 0, 0);
// 動作する時間を設定(ms)
scaleAnim.setDuration(1000);
// アニメーションを繰り返す回数を設定。指定しない場合は1回のみ。無限に繰り返す場合は‐1
scaleAnim.setInterpolator(new CycleInterpolator(1));
// 準備したImageViewでアニメーションを開始する。
imageView.startAnimation(scale);



といった感じですね~。ちょいと動かしたい時なんかには使えるんじゃないですかね?

あと最後に複数のアニメーションを動かせる【AnimationSet】です。

// AnimationSet(boolean shareInterpolator)
AnimationSet animSet = new AnimationSet(true);
// 点滅アニメーションを設定
animSet.addAnimation(alphaAnim);
// スケール変化のアニメーションを設定
animSet.addAnimation(scaleAnim);
// アニメーションを繰り返す回数を設定。指定しない場合は1回のみ。無限に繰り返す場合は‐1
animSet.setInterpolator(new CycleInterpolator(1));
// 準備したImageViewでアニメーションを開始する。
imageViewstartAnimation(set);



では今週は以上です~。
また来週!ノシ

Category: 開発日記(Java)

tb 0 : cm 2   

【Java】システム設定周りについて 

こんにちは。大坂です。

今週になってまたすごく寒くなりましたね・・・。
日曜からまたちょっとあったかくなるみたいですが、気温差で体調を崩さないように気を付けてください。
(日曜、月曜と風邪ひいてましたけど。)

さて、今週もJavaの話題ですが弊社でリリースしているアプリでも使用していますが、
Androidで設定しているシステム設定についてです。
「Settings.System」を使用して値の取得と値の設定をすれば、
自分が必要な設定の確認と設定が簡単にできるアプリもすぐできてしまします。

まずは値取得の一例:
Settings.System.SCREEN_OFF_TIMEOUT:ディスプレイの消灯時間

取得方法
Settings.System.getString(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT);
取得できる値はミリ秒です。(30秒で設定していたら3000が帰ってきます。)

次に値設定の一例:
同じくSettings.System.SCREEN_OFF_TIMEOUT

設定方法
// 消灯時間を10分に設定
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, 600000);
※消灯をなくす場合は「-1」を設定すると消灯しなくなります。

こんな感じで簡単取得も設定もできてしまします。
紹介したSettings.System.SCREEN_OFF_TIMEOUT(消灯時間)以外にもReferenceに色々載っているので参考にしていろいろ試してみください!

すみません。これで終わりです!
また来週!

Category: 開発日記(Java)

tb 0 : cm 0   

【JAVA】LINEへの投稿連携 

こんにちは。大坂です。

最近少しあったかくなってきましたが、
インフルエンザが流行っているようなので皆さん気を付けてくださいね!

今日は久しぶりにJAVAの記事にしてみようと思います。
大した内容の話ではないですけどね・・・。

前にTwitter連携の話を書きましたが、友達にLINEのほうが使うからLINEと連携してくれ!って言われたので、
今日は似たようなところですがLINE連携の話です。
すごく簡単にできてしまうんですけどね。

コードでっす。
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("line://msg/text/" + "テスト"));
startActivity(intent);

だけです。簡単ですねー。
でもこれだとLINEの公式アプリが直接開かれるのでインストールされていないと「ActivityNotFoundException」が発生して落ちてしまいます。

インストールされているか確認するして対処するといいですね。Twitter連携字にも書いた方法ですが。
あとは、Exceptionキャッチしてそこで処理させてもいいのかもしれませんが・・・あまり好みではないので確認します。

インストールの確認方法。Twitterの記事にも全く同じコードが書いてますが、一応書いておきます。
  boolean lineFlg = false;
// パッケージマネージャを取得
PackageManager pm = getPackageManager();
// ランチャーから起動出来るアプリケーションの一覧を取得
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
// 一覧の取得
List list = pm.queryIntentActivities(intent, 0);
if (list != null) {
for (ResolveInfo info : list) {
// アプリ名をログに出力
Log.i("アプリ名", info.loadLabel(pm).toString());
// パッケージ名をログに出力
Log.i("パッケージ名", info.activityInfo.packageName);
// パッケージ名に「"jp.naver.line.android"」が存在するか判定
if(info.activityInfo.packageName.equals("jp.naver.line.android")) {
lineFlg = true;
break;
}
}
}


これで、友達に送ったりホームに投稿することができるようになります!

ではではまた来週!

Category: 開発日記(Java)

tb 0 : cm 0   

【Java】SQLiteでDBを操作してみる その3 

こんにちは~
大坂です。

今週もSQLiteのお話です。
テーブル作成、セレクトのお話が終わったので、Insert、Delete、Updateについて。


public class TestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
setContentView(layout);

// 先々週書いた記事のDBHelper
TestDatabaseHelper helper = new TestDatabaseHelper(this);
SQLiteDatabase db = helper.getReadableDatabase();

// Insert(戻り値はインサートした行のID)
ContentValues insert_values = new ContentValues();
values.put("name","ハルシオン ジロウ");
values.put("sex","男");
values.put("age","5");
long id = db.insert("test_table", null, insert_values);

// Update
ContentValues update_values = new ContentValues();
values.put("age", 10);
db.update("test_table", update_values, "name = 'ハルシオン ジロウ'", null);

// Delete
db.delete("person_table", "name = 'ハルシオン ジロウ'", null);

}
}

それぞれの引数について
Insert
第一引数:テーブル名
第二引数:NotNull属性のカラムにデータを入れるときに値が指定されていない場合、代わりとなる値を指定
第三引数:列名と値がマッピングされたContentValuesインスタンス

Update
第一引数:テーブル名
第二引数:Where条件
第三引数:Where条件を「?」とした場合のパラメータ(String[])
例:
db.update("test_table", update_values, "name = ?", new String[]{"ハルシオン ジロウ"});

Delete
第一引数:テーブル名
第二引数:Where条件
第三引数:Where条件を「?」とした場合のパラメータ(String[])

以上でござる。
今週も手抜きでござる。

ではでは、また来週(´・ω・)ノシ

Category: 開発日記(Java)

tb 0 : cm 0