Android開発爆笑記

レセプターのソフト&ハード開発備忘録

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("","")でした。