2017.08.17

LinearLayoutに関するもろもろの問題

■ケース1
オブジェクトを一番下に配置したいとき、よくある解説では、

android:gravity="bottom"

を推薦するけど、何が足りないのか、うまくいくことは少ない。

代わりに以下を入れるとうまくいく。

app:layout_constraintBottom_toBottomOf="parent"

これは、Android Studioで、Designモードでドラッグすれば自動で挿入される。


■ケース2
LinearLayout等で、

android:layout_width="match_parent"

と設定したにも関わらず、Designモードに行くと自動で数字が入ってしまう。
これは、ConstraintLayoutを使用しているかららしい。
出だしに、以下のように記載されていたらConstraintLayoutになっている。

これをRelativeLayoutにすれば戻るらしい。
とは言うものの、ある程度設計してしまってからRelativeLayoutに変更するのは何かとリスクがある。最初からRelativeLayoutにしておくことをおすすめ。


| トラックバック (0)

2017.08.16

画面の回転の固定について


画面を現在の状態で固定にしたいとき、APIレベル18以上であれば以下の一行ですむ。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);

APIレベル17以下の場合は、センシングして以下のように設定。

switch (((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay().getRotation()) {
case Surface.ROTATION_0:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
break;
case Surface.ROTATION_90:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
break;
case Surface.ROTATION_180:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
break;
case Surface.ROTATION_270:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
break;
}


静的に横固定する場合は、

android:label="@string/app_name"
android:screenOrientation="landscape">

landscape:横固定
portrait:縦固定
reverseLandscape:さかさまの横固定
reversePortrait:さかさまの縦固定

| トラックバック (0)

android アプリでインターネットに接続するためのパーミッション


AndroidManifest.xmlに以下の一文を追加。
久々に触ると結構忘れる。

| トラックバック (0)

2017.08.13

android.content.ActivityNotFoundException: No Activity found to handle Intent

暗黙的インテントでwebを起動する基本的な起動でエラー発生。

URIクラスで誤ると出るエラーらしくて、スペースでハマった人の事例もあったみたい。

Android初心者がAndroidアプリでGooglePlayを開こうとしてつまづいた話

しかし、今回の場合はそうではなかった。

テキストの例には、アクションの設定部分を
String action = "android.intent.action.VIEW";
Intent intent = new Intent( action , address );

とあったけど、正しくは、
String action = Intent.ACTION_VIEW;
Intent intent = new Intent( action , address );

としないといけないみたい。

その後、テキスト通りのソースでもうまくいく。
何かのインポートが抜けていた?
原因は不明。

| トラックバック (0)

Android Studio でのログの表示

サンプルコードですらエラーが出る・・・
ログを表示させるには以下の手順で確認。

下の列に、以下のようなタブが表示されているはず。
[6: Android Monitor] [0: Messages] [Terminal] [4: Run] [ 5:Debug] [ TODO ]
この[6: Android Monitor]を選ぶと表示。

表示されていなければ、Viewタブ→Tool Buttonsにチェックを入れる。

ある時からログが更新されなかったと感じたら、エミュレータを変えたかも。
Adnroid Monitor の左上当たりのセレクタで、[DISCONNECTED]となっていないか確認。
セレクタから、今動いているのを選ぶ。

| トラックバック (0)

2017.08.12

エミュレーターのワーニング

で、早速簡単なアプリをエミュレータで起動しようとするも、以下のワーニングのようなものがでる。

Some users have experienced emulator stability issues with this driver version. As
a result, we're selecting a compatibility renderer. Please check with your
manufacturer to see if there is an updated driver available.

使ってるバージョンのドライバが古い?
まずは、Tools→Android→AVD Manger
から、デバイスを一つ起動してみると、同じように出る。

では、[Create Virtual Device]からデバイスを新しく作ってみる・・・
が、新しく作ったデバイスでも、まだ出るみたい。

PC側のアップデートを後ほど確認するとして、一旦スルー。

| トラックバック (0)

androidアプリ開発再開

ずいぶんご無沙汰になってしまったけど、久々にandroid アプリの開発を再開してみる。
当面は引っかかった時のメモを書く。

| トラックバック (0)

2015.02.21

ロボットへの感情移入

「ロボット犬」蹴り飛ばすのは虐待!?  「ドラえもん」も巻き込み議論が白熱

どういうレスポンスをどういうタイミングでしたかで人は心が動く。特にタイミングによるところが大きいと思う。
その究極をエンターテイメントとしてビジネスにしているのがお笑いやバラエティの世界。
アドリブなんかが絶妙なタイミングであるとお笑いはもっと面白くなり、逆に微妙なタイミングでレスポンスをすると冷ややかになる。その冷ややかな雰囲気が逆に面白く見えてしまうのもまたタイミング。

どんなに見た目や会話の内容を工夫した所で、殴って5秒後に「イタイ」と棒読みされても、感情移入できない。よく出来てるね程度の反応しか帰ってこない。

各社から、コミュニケーションをウリにするロボットがいろいろ出ているが、イマイチぱっとしなかったのは、レスポンスの内容とタイミングが心を打たないから。で、多分その点に気付いて最大限感情移入を引き出そうと努力しているのがpepperなんだろう。だから吉本と組んだりするわけだ。

この記事にあるように、一言も発しないロボット犬の方が、中途半端にべらべらしゃべるロボットよりも感情移入されるのは、他のコミュニケーション系ロボットを開発している開発者からすると悔しく感じることだろう。

これぐらい炎上できたらロボット開発者の勝利だな。

| トラックバック (0)

2015.02.14

米政府、健康への影響が懸念される栄養素からコレステロールを除外する見通し

スラッシュドットwashingtonpostより。

約40年もの間使われていたコレステロールの消費量の基準値を外す見通しらしい。食品に含まれるコレステロールの量が血中コレステロール濃度に大きな影響を及ぼさない事がわかったからだとのこと。学校の昼食や、健康食品を提供する企業、食事療法等、幅広く影響を与えるだろうとのこと。そりゃそうだな。そして、かわいそうなのがアメリカの卵業界。卵にはかなりのコレステロールがあるわけですが、アメリカでの一人あたりの卵の消費量はピークの半分ぐらいになっている。栄養価が高くて、ともすれば健康食品として逆に増えていたかもしれなかったかと思うと不憫でならない。

Imrs

健康の基準とか気をつけ方っていうのは、時代を追う毎に変化するのはよくある話だけど、久々の特大クラスの変更じゃなかろうか。この変更を科学の進歩と捉えるのもひとつの考え方だけど、washingtonpostを見た限りでは、コレステロールに敏感なうさぎでたまたま実験していたからと言う随分いい加減な実験結果に基づいたもので、進歩と捉えるのはどうかなぁ。

で、興味深いのが、アメリカでは食品のコレステロールの含有量表示を義務化していてそれを見直す必要がでてくる。一方日本は、まだコレステロールの表示については検討中の段階で「今後検討が必要なもの」とある(栄養表示の対象成分について[平成25年12月4日]のP8あたり)。まさに一周遅れの状況で、日本の消費者庁にはもうちょっと頑張ってほしいものである。

| トラックバック (0)

2015.02.13

ISILの報道に感じる違和感

いつまでたってもISIL関連の報道の違和感が拭えない。

まず、いまだにISILをイスラム国と表記したり、あるいはイスラム国(ISIL)と表記してイスラム国の呼び名を優先している。
アメリカでは2014年からすでにISILという呼称を使っており、自民党も1月にはISILで統一すると表明しているにもかかわらずだ。イスラム国と言う国があたかも存在するかのように誤解を招きかねないというのが主な理由とあるが、すでにこれだけ報道された段階で誤解する人はいないだろう。しかし、こういった表現の気遣いをしていかないと深層心理で国として認識してしまう。
例えば、「イスラム国」人質事件で政府批判を許さないのは危険だ。田原総一朗は、『「イスラム国」と「準戦争状態」』と言った表現を使っている。「戦争」とは国家やそれに準ずるところ同士の争いをさし、国家に準ずる団体として認めた表現になっている。戦争とかではなく、単にテロ集団の標的になっているということだ。ISILには、国家のような体制があるとして「税金」や「法律」があるかのような表現も見られるが、これらも実態は暴力団のみかじめ料みたいなものであり、特定集団の内部の独自ルールに過ぎない。楽な言葉だし、センセーショナルに取り上げたいのはわかるが、国家間で使われる表現を使い続けると、ISILを国と暗黙に認めることにつながりかねず、その存在感は増し続ける。また、「イスラム国」と表現してしまうと、イスラム教が認めた組織とも思われかねない。これは、敬虔なイスラム教信者にとってはいい迷惑だ。ISILは、周辺のスンニ派・シーア派のイスラム教諸国の政府などから国家として認められていない。そういった意味でISILという言葉を使い続けてもらいたい。

そして、ISILの報道には言論の自由や報道の自由がよく主張されているのもおかしな話だ。
先日も、新潟市のフリーカメラマンがパスポートの返納を求められて記者会見をしていたが、政府としては当然の措置だろう。そもそも、このカメラマンの「報道」という言葉の定義が誤っている。報道とは、情報を持って帰ってきて広くその情報を公開できて初めて報道と呼べるのであって、戻ってこれなければそれは報道とは呼べない。今回の邦人殺害があったにもかかわらずわざわざ危険な地域に行くと宣言している人間を出国させて、再び同様の人質事件が起きてはそれは報道できたとは言えない。
個人的には、強制してでもISILと呼ぶようにすべきで、正しく報道せず単に過熱気味に報道しているマスコミには何らかの懲罰的なものがあっても良いと思っている。言論の自由とか報道の自由は、国では実現できなくてメディア発だからこそ世の中の状況を改善できる要素が含まれているからこそ、守られているのだと思う。そして、そういった状況の改善に少しでも見込があるからこそ、命がけの報道に意義があるのだ。単に世の中の状況を悪化するような報道の自由や言論の自由はいらない。

先に紹介した記事でも「政府に言うべきことは言わなければいけない」とあるが、確かにもっともなのだが、言うべき事がなければ無いでかまわない。野党のように政府のアラを無理やり探して日本政府の地位を下げ、相対的にISILの地位を上げる必要もないだろう。ISILは、メディアを使って確実に国家としての地位を得つつあり、メディアは無責任にISILが国になるように報道の中で助けているように見える。メディアに対しては、もっと報道に気を遣い、ISILのプレゼンスを上げる手助けにならないよう気を使ってもらいたい。

| トラックバック (0)

«Android Wear 開発メモ