FLASHFORGE ADVENTURER3 導入時
FLASHFORGE ADVENTURER3 導入しました。
開封して無設定でもサクサクと3Dモデルを作れるのは凄いと感心する。
製品とラフトがなかなか取り辛かった「校正距離が近い」と言うのが分かり、ADVENTURER3の「設定」から「工場出荷設定」を実行した後に「校正」でZ軸方向の設定を二枚重紙を使って測り「+1.0」にした。
(出典: https://nssngt.com/2018/09/12/532/ )
感想:校正は初期に必須作業にしても良いかなと思う。
LinearLayoutのweightのJava中の動的指定
(要求)LinearLayout中のScrollViewをスマホのサイズに合わせて動的に変更したかった。
(結果)
ScrollView sv = (ScrollView)findViewById(R.id.部品ID);
LinearLayout.LayoutParams svp = (LinearLayout.LayoutParams) sv.getLayoutParams();
svp.weight = screenHeight-固定値;
(考察)
(LinearLayout.LayoutParams) sv.getLayoutParams();とScrollViewをキャストしてLinearLayoutのプロパティを持ってくるとは思わなかった。
ImageViewのサイズ変更
ImageViewをスマートフォンの各画面サイズに合わせて調整したいと思った。
ImageViewのプロパティに「setLayoutParams」がある。
ViewGroup.LayoutParams params = imgeView.getLayoutParams();
params.Wifth = 100;
params.Hight = 100;
imageView.setLayoutParams( params );
100等はドット数です。
こんな感じで指定します。
フルスクリーンの指定
最近アプリのフルスクリーン指定が変わったので備忘録。
(1)style.xmiに記述
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
<!-- oprion menu の背景色 -->
<item name="android:panelBackground">@android:color/white</item>
</style>
(2)AndroidManifest.xmiの<applicaion部に記述
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"
以上
端末スリープ状態からの点灯復帰
WakeLockを使う。
使う際はAndroidManifestにパーミッションを記述(よく忘れる)
<uses-permission android:name="android.permission.WAKE_LOCK" />
下をコピペして呼ぶ
private void wakeFromSleep() {
PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakelock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, "disableLock");
wakelock.acquire();
wakelock.release();
wakelock = null;
}
バーコードを読む
他の方からの情報ですが自分用に備忘録として残します。
zxingのバーコードでバーコードを読む際に
(1)マニフェストに追加はない。
(2)build.grade(Module app)に2行追加
dependencies {
~
compile 'com.journeyapps:zxing-android-embedded:3.0.0@aar'
compile 'com.google.zxing:core:3.2.0'
~
}
(3)アクティビティから呼び出し
IntentIntegrator integrator = new IntentIntegrator(MainActivity.this);
integrator.initiateScan();
(4)アクティビティで応答を受ける
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult intentResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
String code;//バーコード内容
if (null != intentResult && (code = intentResult.getContents()) != null) {
Toast.makeText(this, code, Toast.LENGTH_SHORT).show();
}
}
URLのデコード
String ud = "";
try {
ud = URLDecoder.decode("http%3A%2F%2Fwww.server.com%2Fapi%2Ftoken%2FdJWbOlm1lMm1yx1SY9DMkcnR4ohb4fWcEgDltqMvThuCfjrhGjnwHaXhBMoW","utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Log.d("URL",ud);
※要点
URLDecoder.decode("文字列","文字コード指定")とtry{}catch(){}で囲むことでした。
エンコードは URLEncoder.encode("","")でした。