無趣味な人

生まれてこの方、無趣味。ハマったものこれといって特になし。

妊娠判明前に飲んだお酒って本当に赤ちゃんに影響ないの?

妊娠に気付いてから胎児性アルコール症候群というものを知る人は多いのではないだろうか。 妊娠に気付いてから、「飲酒してしまった」という思い悩む。 それに対する回答で多いのは「妊娠に気付くまでは飲酒しても大丈夫」である。 本当だろうか?

妊娠超初期のアルコールが赤ちゃんに影響することは、まずないと言われています

妊娠2ヶ月/妊娠についての不安

色々なところを読むと妊娠超初期は大丈夫と書いてある。 妊娠超初期とは0〜3週。 この妊娠超初期の飲酒が心配する必要がないのは分かった。 しかし、この間に妊娠に気づく人は少ないのではないか。

生理予定日を過ぎてから妊娠に気づく人の方が多いと思う。 生理予定日は妊娠週数の数え方でいうと4週目になる。 気になるのは妊娠4週目や5週目に飲酒してしまった場合のリスクだ。

着床が完成して妊娠が判明しはじめる生理予定日ごろまでの薬物成分は原則として胎児の催奇性には影響ない」

胎児性アルコール症候群 - Wikipedia

とされている。 妊娠が判明しはじめる生理予定日ごろとは4週目の最初。 それ以降は胎児の催奇性には影響あるということ。 妊娠4週目以降の飲酒は影響を与える可能性があるということだろう。

妊娠4~7週末(29~50日) この時期は、胎児の中枢神経、心臓、消化器、四肢など重要な臓器がつくられている。催奇形という意味では胎児が最も敏感な絶対過敏期である。

知識の宝庫第26章

生理予定日1日目から絶対過敏期となっている。 お酒だけでなく、薬も気をつけなければならない。 これも、妊娠に気づく前に薬を飲んでしまう人は多そうだ。

妊娠3週には脳の形成が始まっている。

FAS(胎児性アルコール症候群)のページ

4週目以降だけでなく、妊娠超初期でも飲酒による影響のリスクはあるということだろうか。

妊娠7週から12週での飲酒、特に大量の飲酒が、FASの子どもに典型的な顔面風貌の特徴4項目や、出生時の低身長および低体重との関連を明確に示した

妊娠中の飲酒、第7~12週目でFASリスク高まる 米研究 写真1枚 国際ニュース:AFPBB News

妊娠がわかる時期は4週から6週ぐらいなので、それからお酒を飲まなければ可能性は低くなる。 あくまで可能性の問題だが、「妊娠に気付くまでは飲酒しても大丈夫」と言われるのはこの辺が理由だろうか。

間違っているっぽいこと

たまにコップ1~2杯飲むのは問題はないとされています。

妊娠1ヶ月(妊娠0週~3週)/日常生活

少しだけなら問題ないという意見もみられる。 しかし、実際には少量でも影響した例があるようで、少しだけなら大丈夫とはいえないはずである。

「これ以下の飲酒量であれば胎児に影響がない」という安全量は確立されていない

飲酒、喫煙と先天異常

実際には胎盤が作られ、胎児へ栄養などが送られ始めるのは妊娠4ヶ月ごろから

妊娠前の飲酒・・・。赤ちゃんに影響は? -症状や対処法など家庭の医学情報- カラダノート

だから、それ以前なら飲んでも大丈夫と考えてしまう人がいるようだ。 だが実際は第7~12週目の飲酒が一番リスクが高い。 これは、妊娠初期に飲んでしまった人を安心させるための言葉だろう。

結論

残念ながら、妊娠4週目5週目の時に飲酒しても大丈夫という確証を得ることは出来なかった。

飲んでしまったものはしかたがない。 もう取り戻せない。 妊婦に不安感をあたえてはいけない。 第7~12週目に飲むよりも可能性は低い。 と言った理由から、「妊娠発覚前の飲酒は問題ない」ということにしているのではないだろうか。

妊娠するつもりがある場合にはアルコールを控えたほうがいいのだろう。 または、生理開始後10日間に限って飲むことにすれば胎児性アルコール症候群のリスクを0にできる。

妊娠していると分からず飲んでしまっていた場合は、気付いてからはアルコールを控えること。 いつまでも飲んでしまったアルコールのことを思い悩むよりも、栄養バランスなど今後のことを気をつけることの方が大事だ。 第7~12週目に飲まなければ胎児性アルコール症候群になる可能性は低い。

ほとんどの人が、妊娠発覚前はそれまでと同じ生活を続けている。 それで、元気な赤ちゃんを生んでいるのだから思い悩む必要はないと思う。

恥ずかしい思い出を忘れる方法

恥ずかしい思い出がある。
誰にでもあると思う。 思い出したくない嫌なこと。 夜寝る時に布団に入っていると、急に思い出して
「あぁあああああああああああぁ!」
って頭抱える。
これを何とかしたいとずっと思っていた。

自己啓発書を読むのが趣味みたいなところがある。

7日間で人生を変えよう(CD付き) という、書店では買うのをためらわれる題名の本がある。 題名はこんなだが結構売れた本である。 この本に嫌な事や恥ずかしい事を忘れる方法が書いてあった。

簡単に紹介する。 恥ずかしい事を思い出した時に以下をする。

  1. 思い出した映像を白黒にする
  2. 思い出した映像を遠くから俯瞰で観るようにする
  3. 思い出した映像から音声を削除する

効果はあるような気がしないでもない。 嫌な事や恥ずかしい事を思い出す回数が減ったような気もする。 恥ずかしい事を思い出しても頭を抱えるほどじゃなくなった気もする。 プラシーボ効果かもしれない。 思い出したくもない事を思い出した時に頭を抱えるだけじゃなく、やることがあるというのは気が紛れていい。

【追記】
上記の事を記憶を頼りに書いた。 本を読み返してみると上記の方法は、苦手な人の対処方法だった。 勝手に脳内で変換していた。 でも、別に嫌な思い出や恥ずかしい思い出を忘れる方法でも使えると思う。 なんでこの方法が効果があるかなど書いてあるので、興味のある方は本を読んでみてください。 ただし、この本を読んだぐらいで人生が変わることはないです。

「早教育と天才」、子供を天才にする方法

「早教育と天才」という本を読んだ。 家庭保育園などのような早期教育の原点となる本ということである。 幼児教育で天才をつくろうという本だ。

自分自身が読んだ感想としては、この本に書いてあることを実践すればある程度の子供にはなると思った。 ただし、実践するのは大変に根気のいる作業である。

この本の中では何人かの天才児について紹介されている。

その中でもヴィッテという人が原点であって、その他はヴィッテの書いた本を参考にしたようだ。

その天才児達のその後を調べると幸せな人生を歩んでいない人もいる。 人生においても一番の成功例はヴィッテだろう。 ヴィッテを参考にすべきだと思う。

その教育法だが以下の手順だ。

  • 出来るだけ早く言葉を覚えさせる
  • 言葉を覚えたら、毎日色々教える

要約するとこれだけである。 どのように工夫して言葉を覚えさせるか。 どのように物事を教えるか。 無理やり教えこませるのではない。 どのように興味をもたせるのか。 などなど、書いてあった。

魔法のような手法ではない。 根気のいる方法だった。 時間が必要である。 ヴィッテの父親はつきっきりだったのではないだろうか。

魔法のような方法があって、それを幼児期にすれば天才になる。 天才になったらあとは少しの勉强でいい。 後は面倒をみないでいい。 ということを期待して読む本ではない。

言葉を覚えさせて小学校に入るまで色々教えるわけだが、約5年ぐらいか。 仮に大人が5年間毎日2時間勉强した場合、ある程度のことは身につくのではないか。 ましてや、吸収の早い子供だったら、色々身につきそうだ。 実績できれば、どんな子でも、ある程度の優秀な子供になると思う。

定本 育児の百科〈上〉5カ月まで (岩波文庫) 松田 道雄 (2007/12/14)

育児本の中で一番有名な本らしいので読んでみた。 読み物として面白く、ぐいぐい読み進むことが出来た。 活字に抵抗がない人は、他の写真が多い育児本よりもこの本がオススメである。 ただし、かなり前に書いた本らしいので現在の常識とは違ったことが書いてあるようだ。 普通に読んでいて、あれ?これ本当かな?と思った箇所を調べてみた。 あら探しをしながら読んだわけではないので、全部を指摘は出来ない。

1.果汁を飲ませたほうがいい?

この本の中では果汁を飲ませたほうがいいとと書いてあります。 しかし、助産師さんに聞いてみたら飲ませないほうがいいと言っていました。 他の、産婦人科医の書いた書籍を読んでみても飲ませないほうがいいとのこと。 現在では生後6ヶ月までは果汁を飲ませないほうが良いというのが常識となっているようだ。

2.サプリを飲ませないとダメ?

サプリを飲ませたほうがいいと書いてある。 調べてみるとアメリカではサプリを上げるらしい。 アメリカではビタミンA、ビタミンC、ビタミンD入りのサプリを生まれてすぐに与えるようだ。 日本人でもビタミンD不足によるくる病が増えているらしいので与えてもいいのかもしれない。

ただ、気になる調査結果があった。

生後6カ月までにマルチビタミン剤をのみ始めていると、3歳時点でぜん息になる確率が27%高い

出典:赤ちゃんにビタミン剤をのませると、黒人の子供はぜん息になりやすい??米国の大規模調査が示唆:日経ヘルスオンライン

この調査では黒人の子供だけだったらしい。 日本人にもその傾向はあるのだろうか? アメリカでの調査なのでアジア系もいるはず。 「黒人の子供だけ」と言っているので、大丈夫なのだろう。

じゃあ、買ってみようと、探したが日本では新生児用のサプリなんか売っていない。 個人輸入できるサイトも見つからなかった。 みんなサプリなしで元気に育っているのだから、別に必要もないのだろうと購入は諦めた。 出版されたころはサプリを入手することが出来たのだろうか?

まとめ

その他に気になったのは、出版された頃と住宅事情の違いなどによる読めばだれでも分かるようなところだ。

赤ちゃんにはそれぞれ個性があるから杓子定規にはいかないこと。 赤ちゃんが元気なら大抵のことは大丈夫なこと。 この辺が繰り返し述べられている。

現在の傾向とは異なる記述もあるが、それでも名著だと思う。 医学的なことよりも大切なことが沢山書いてある。 それに何より読んでいて面白い。スラスラ読める。

高齢出産と自閉症 どのぐらいリスクが上がるのか計算してみた

高齢出産のリスクとして知られているのは、ダウン症の可能性が高くなることである。 しかし、このリスクは検査をすることで回避が出来る。 検査そのものは異論反論があるが、昨今の少子化社会と出産の高齢化傾向を考えると全否定はできない。

最近、もう一つのリスクについて言われるようになった。 出産時の母親の年齢が高くなるほど自閉症のリスクが上がるということだ。 そして、母親だけでなく父親の年齢にも相関関係があるということだ。

母親の出産年齢が5歳上がるごとに、子供の自閉症リスクは18%ずつ上昇する

出典:高齢出産がリスクに? 自閉症の子どもが急増している2つの理由

アメリカの話である。 出産の高齢化が進んでいるためか、実際に自閉症と診断された子供の割合が増えているということである。

自閉症は染色体異常ではないため、出生前診断では判断することは出来ない。 このようなことを考えると、子供を作るのは出来るだけ若いほうがいいようだ。 それでは高齢になったら出産を諦めたほうがいいのだろうか。そうは思わない。

大体であるが、どのぐらいリスクが上がるのか計算してみた。

Wikipediaによると、自閉症児は「日本では1000人に1 - 2人の割合で生じている」ということである。 まあ、ハッキリとはわかっていないようである。
仮に多めに1000人に2人として計算すると0.2%

次に出産平均年齢を推測する。厚労省のページから「第1子出生時の母の平均年齢は上昇傾向にあり、平成23年は30.1歳」となっている。第2子以降を考えるともっと年齢が上がるはずだ。が、これも保守的に出産平均年齢は30歳とする。

以上から、かなり多めにみて、30歳で出産した場合の自閉症になる確率は0.2%となる。

ここから「5歳上がるごとに、子供の自閉症リスクは18%ずつ上昇」を 考慮すると、40歳に生むときの子供の自閉症リスクは0.28%となる。 出産を諦めるような数字ではない。 全体で考えた場合に差が出てくる話であって、個人レベルではほとんど差がないと言っていい数字ではないだろうか。

ダウン症でもそうだが、元々確率は0ではない。 障害を抱えた子供を生むリスクが0でなければ産まないという選択はない。

確率の問題なので理解しづらい話ではある。

大切なこと

元気な子供を生むために、赤ちゃんがお腹にいる間にできることもあります。 葉酸サプリを取ることです。二分脊椎などの神経系の胎児疾患を予防する効果があるとして、厚生労働省が妊娠中や妊娠する可能性のある方は葉酸サプリを摂取することを推奨しています。どうしようもないことに悩むよりもこれからどうすれば元気な赤ちゃんが産めるか考えるべきです。

おすすめのDHAサプリを2つ紹介します。

たくさんあるのですが、なぜこの2つを選んだかというと、葉酸だけでなくDHAも含まれているからです。DHAをたくさん取得した妊婦から生まれた子供は高IQになるという調査結果が出ています。【参考】これから生まれてくる赤ちゃんのIQを少しでも上げる方法

Macbookってケンジントンロックないのね

Macbookケンジントンロック(セキュリティスロット)がない。 必要なときもあろう。 防犯対策を考えていた。

1. ディスプレイまたはシリアルポートに取り付ける

シリアルポートはない。

2. 液晶の首部分に付ける

ワイヤーロックが細ければいいとおもったが、ディスプレイと本体の間はかなり狭い。 市販のやつではダメそう。

3. 両面テープで取り付ける

外された時に音がなるので防止にはなるかも

4. ネジで取り付ける

ネジで取り付けられるようなところはない。

5. ケンジントンロックを取り付けるキットを利用する

Macケンジントンロックの穴のついたケースをネジ止めでつけるキットと ケンジントンロックの穴のついた金具を強力接着剤でMacbook Pro Retinaにつけるキットがある。

6. USBの差込口でロック

USBをキューって外側に締め付けて外しづらくしてくれるだけでいい。 抜こうと思っても抜けなくなる事案もあるみたいだしロック出来そう。 中華製しかみつからなかった。

7. 吸盤式セキュリティワイヤー

吸盤式のセキュリティワイヤーというのもある。元々はタブレット用のものであるがMacbookのようなノートパソコンでも使用できるだろう。本体を傷つけたりしないからいいかも。

8. トレネ

トレネという、ノートPCの上においておいて動くとアラームが鳴る商品がある。ノマドワーカーなどが一時的に席を外したいときに使えそうだ。まだまだ、動作で問題があるようだがいずれ解決されるだろう。面白い商品だと思う。

結論

これで決まり!!!っていう商品はないような気がする。ワイヤーでセキュリティというのがもう古いのだろうか。

Androidアプリ開発:リソースIDを文字列から

テーマの変更を動的にやりたかった。 テーマはPreferenceでListPreferenceを使用して、ユーザーに選択してもらう。 選択したテーマを元に動的に変更する。

配列は以下の感じ。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="theme_array">
        <item>白</item>
        <item>黒</item>
        <item>赤</item>
    </string-array>
    <array name="theme_array_values">
        <item>Theme.Light</item>
        <item>Theme.Dark</item>
        <item>Theme.Red</item>
    </array>
</resources>

Preferenceは以下の感じ。

<ListPreference
    android:defaultValue="Theme.Light"
    android:dialogTitle="テーマ選択"
    android:entries="@array/theme_array"
    android:entryValues="@array/theme_array_values"
    android:key="theme_setting"
    android:summary="ツールバーや背景の色を変更する"
    android:title="テーマの変更"/>

テーマ変更はsetThemeを使えばいいのだが、リソースIDをどう取得すればいいのかわからなかった。 条件分枝しなければならないのかと思ったら簡単な方法があった。 getIdentifierを使えば、文字列からリソースIDを取得できる。

String theme_setting = sharedPreferences.getString("theme_setting", "Theme.Light");”;
Resources res = getResources();
int viewId = res.getIdentifier(theme_setting, "style", getPackageName());
setTheme(viewId);

上記をActivityごとにやる。

アピール イククル「18禁」

20年の実績!安心して
利用できる恋愛マッチング

NavigationViewのMenu Itemを動的に非表示に

DrawerLayoutとNavigationViewでメニューを作成した。 状態によって一部のMenu Itemを表示したり非表示にしたりしたかった。 動的にメニューを追加しようとした。 が、すべてのメニューをmenu.xmlで定義しておいて動的に非表示にするのが楽だった。

//NavigationView
mNavigationView = (NavigationView) findViewById(R.id.main_navigation_view);
mNavigationView.setNavigationItemSelectedListener(this);

//省略

//非表示にしたい時に以下をする
Menu menu = mNavigationView.getMenu();
MenuItem menuItem1 = menu.findItem(R.id.menu_item_1);
menuItem1.setVisible(false);

別のプロジェクトのモジュール利用をやめて、モジュールをインポートした

Android Studioでライブラリプロジェクトを作成して、そこからモジュールを参照する形にしていた。が、メンテナンス上、自分のプロジェクトにモジュールを追加して使うようにしたくなった。 その時のメモ

1. setting.gradleから削除

setting.gradleに以下の記述をして、外部ライブラリプロジェクトからモジュールを追加していたが削除した。

include ':testlib'
project(':testlib').projectDir = new File(settingsDir, '../MyLib/testlib')

2. app の build.gradleから削除

appのbuild.gradleのdependenciesからライブラリモジュールを削除

compile project(':testlib')

syncさせると確認があるので「OK」を押す。 モジュールがプロジェクトから消える。 当然、ビルドするとエラーがいっぱい出る。

追記:ここはやらなくてもいいかも

3.モジュールをインポートする

[File] > [New] > [Import Module]でモジュールを選択する。 ファイル一式がコピーされ、setting.gradleは自動で以下のように変更される。

include ':app', ':testlib'

その後、app の build.gradleのdependenciesに

compile project(':testlib')

を追加する。

PagerSlidingTabStripのNullPointerException

ViewPagerIndicatorからPagerSlidingTabStripに変更して使っていたら、以下のようなエラーが吐かれてしまう。

java.lang.NullPointerException
        at com.astuetz.PagerSlidingTabStrip$PageListener.onPageScrolled(
                PagerSlidingTabStrip.java:361)
        at android.support.v4.view.ViewPager.onPageScrolled(ViewPager.java:1712)
        at android.support.v4.view.ViewPager.pageScrolled(ViewPager.java:1633)
        at android.support.v4.view.ViewPager.scrollToItem(ViewPager.java:581)
        at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1600)
        ...

ViewPagerIndicatorを使用していた時にはでないエラーだった。 PagerSlidingTabStripのバグのようなのだが、回避方法はあった。

エラーは、PagerSlidingTabStripにセットするViewPagerの保持している配列の長さが0の時に起こるようだ。そこで、ViewPagerのArrayListの長さを確認してから、PagerSlidingTabStripにセットするようにした。

mViewPager.setAdapter(mViewPagerAdapter);

PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
if(mViewPagerAdapter.getCount() > 0){
     tabs.setViewPager(mViewPager);
}

抜粋だがこんな感じ。getCountは自分で作ったもので、ViewPagerAdapterの中のArrayListの長さを返す。

Toolbarの文字の色を変更する

f:id:itereta:20141215174816j:plain

公開中のAndroidアプリをマテリアルデザイン風に変更するために、Toolbarを使うことにした。

テーマは「Theme.AppCompat.Light.NoActionBar」で。 すると、マテリアルデザイン風にしたいのに、Toolbarの中の文字が黒くてダサい。

f:id:itereta:20170406222036p:plain

この文字の色を変更するだけで苦労してしまった。

最初は、単純に

<style name="MyCustomTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">#0091EA</item>
    <item name="colorAccent">#607D8B</item>
    <item name="android:textColorPrimary">@android:color/white</item>
    <item name="android:textColorSecondary">@android:color/white</item>
</style>

というテーマを作り、AndroidManifest.xmlに登録した。 しかし、こうすると他のandroid:textColorPrimaryを使っている箇所の文字の色も変わってしまった。Toolbarだけのためだけにアプリ全体のtextColorPrimaryを変更するのは色々不都合なのでやめにした。

色々試した方法は二つ。

方法1. 別のスタイルを登録する
方法2. ただのビューとしてスタイルを定義する

「setSupportActionBar」を使ってアクションバーとしてセットする場合は方法1でしかできない。 元々あるアプリはこの方が変更点が少なくて楽であった。 しかし、柔軟なスタイル変更はできない。 方法2の方は変更点が多いが柔軟に色々変更できるので私はこちらを選択した。

方法1

自分のカスタムテーマの下にToolbar専用のテーマを作り、レイアウトファイルでToolbarに設定した。

<style name="MyCustomTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">#0091EA</item>
    <item name="colorAccent">#607D8B</item>
</style>


<style name="MyCustomTheme.Toolbar" parent="MyCustomTheme">
    <item name="android:textColorPrimary">@android:color/white</item>
    <item name="android:textColorSecondary">@android:color/white</item>
</style>

上のように作っておいて、AndroidManifest.xmlにはMyCustomThemeを登録。 ToolbarのlayoutにMyCustomTheme.Toolbarを登録する。

<android.support.v7.widget.Toolbar
                android:id="@+id/my_toolbar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:theme="@style/MyCustomTheme.Toolbar"
                app:popupTheme="@style/Theme.AppCompat.Light">

このようにすれば、Toolbarの文字だけが白くなる。

方法2

「setSupportActionBar」を使わずActionbarとしなければ、styleを設定できる。 要するに、ToolbarをただのViewとして扱うということ。

<style name="MyCustomTheme.Light" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">#0091EA</item>
    <item name="colorAccent">#607D8B</item>

    <!-- Toolbarのnavigation & overflow icon の色 -->
    <item name="colorControlNormal">@color/white</item>

    <!-- Toolarのスタイル -->
    <item name="toolbarStyle">@style/MyCustomTheme.Toolbar</item>
</style>

<style name="MyCustomTheme.Toolbar" parent="Widget.AppCompat.Toolbar">
    <item name="titleTextAppearance">
        @style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse
    </item>
    <item name="subtitleTextAppearance">
        @style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle.Inverse
    </item>
</style>

私は結局、方法2を使うことにした。方法1ではソースコードの変更は少ないのだが、自由度が少なく自分のやりたいことができないことがあるためだ。

以上

Navigation Drawer使用時のaddDrawerListenerでのエラー

f:id:itereta:20141215174816j:plain

Toolbarにメニューアイコンを表示して、そのアイコンをタップすればNavigation Drawerを開くようにしたかった。 ActionBarDrawerToggleを使えば実現できるのだが、大体のサンプルでは以下のように書いてあった。

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawerLayout); 
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( this, drawer, toolbar,R.string.drawer_open, R.string.drawer_close); 
drawer.addDrawerListener(toggle);
toggle.syncState();

しかし、以下のようなエラーが表示された。

Error:(**,**)エラー: シンボルを見つけられません
シンボル: メソッド addDrawerListener(ActionBarDrawerToggle)
場所: タイプDrawerLayoutの変数 mDrawerLayout

理由がわからないのだが、addDrawerListenerが悪いらしい。 これをsetDrawerListenerに変更したら、エラーもなくなり動作確認もできた。

本来はsetDrawerListenerはdeprecatedだが私の環境では動作の問題はない。

ViewPagerIndicatorからPagerSlidingTabStripに変更した

ViewPagerIndicatorを使ったアプリをPagerSlidingTabStripに変更した。 メモ的に必要だった変更をまとめた。簡単だった。

1. build.gradleのdependenciesに以下を追加する。

compile ‘com.astuetz:pagerslidingtabstrip:1.0.1’

2. PagerSlidingTabStrip widgetをレイアウトに追加する

<com.astuetz.PagerSlidingTabStrip
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="48dip" />

これをViewPagerの上に追加した。 ViewPagerは今までViewPagerIndicatorの下に配置するようになっていたので、

android:layout_below="@+id/tabs"

と変更して、PagerSlidingTabStripの下に配置するように変更した。

ViewPagerIndicatorは android:visibility=“gone” として、一時的に非表示にした。PagerSlidingTabStripの動作確認後に完全に削除する。

3.onCreateでバインドする

サンプルなどでは以下のように書いてある。

// Initialize the ViewPager and set an adapter
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(new TestAdapter(getSupportFragmentManager()));

// Bind the tabs to the ViewPager
PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
tabs.setViewPager(pager);

pager.setAdapter(new TestAdapter(getSupportFragmentManager())); の部分がよく分からない。

私はViewPagerIndicatorで使っていた、アダプターをそのまま使いたいので、以下のような感じになる。

mViewPagerAdapter = new ViewPagerAdapter(this);
mViewPager = (ViewPager) findViewById(R.id.viewpager);
mViewPager.setAdapter(mViewPagerAdapter);

// Bind the tabs to the ViewPager
PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
tabs.setViewPager(mViewPager);

4. ViewPagerAdapterの変更

ViewPagerIndicatorを使っていたので、ViewPagerAdapterは以下のような感じ。このまま使うが、メソッドを追加したり変更する必要がある。

public class ViewPagerAdapter extends PagerAdapter implements TitleProvider
1.getPageTitleを追加する

タブタイトルを返すメソッドを追加する。 ViewPagerIndicatorではgetTitleを使っていたが、PagerSlidingTabStripではgetPageTitleとなる。

public CharSequence getPageTitle(int position)

という、タブのタイトルをCharSequenceで返すメソッドを追加する。 getTitleをコピーして変更すればいい。

2. もしinstantiateItemがdepregatedだったら

以下のようにViewをViewGroupに変更する

変更前

public Object instantiateItem(View pager, final int position) {

変更後

public Object instantiateItem(ViewGroup pager, final int position) {

以上、あとはViewPagerIndicatorの使用箇所を削除していけばいいだけだった。 最初にViewPagerIndicatorを使った時は苦労した記憶があるので難しいのかと思ったが、拍子抜けするぐらい簡単だった。

f:id:itereta:20170404125455p:plain

EclipseのプロジェクトをAndroid Studioへインポート時に出たエラー対処方法

f:id:itereta:20170403153809j:plain

重い腰を上げて、EclipseのプロジェクトをAndroid Stuidoへインポートした。 インポート自体はAndroid StudioからImport Projectをすれば良いのだが、エラーがいっぱい出てた。私が必要だった変更をまとめる。

1. minSdkVersionの設定

以下のエラーメッセージが出てきた。

Manifest merger failed : uses-sdk:minSdkVersion 10 cannot be smaller than version 14 declared in library [com.google.android.gms:play-services:10.2.1]

2017/04/03現在、ほとんどがversion 14以上だと思うので、プロジェクト内の全部のminSdkVersionを14にした。

2. compileSdkVersionの変更

以下のようなエラーが出た。

Error retrieving parent for item: No resource found that matches the given name ‘android:Widget.Material.Spinner.Underlined’.

compileSdkVersionをbuildToolsVersionと合わせないとダメなようだ。

buildToolsVersion “25.0.2”

だったので

compileSdkVersion 19

から

compileSdkVersion 25

に変更した。 すべてのbuild.gradleで変更した。

3. FloatMath

エラー: シンボルを見つけられません シンボル: メソッド sin(float) 場所: クラス FloatMath

ってのが出たから すべてのFloatMathをMathに変更した。

4. org.apache.http.legacy

パッケージorg.apache.httpは存在しません

とかのエラーが出てしまう。

build.gradleにuseLibrary ‘org.apache.http.legacy’ を追加すれば解決した。

以下のような感じ

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    useLibrary 'org.apache.http.legacy'

5. This support library should not use a different version

compile ‘com.android.support:support-v4:19.1.0’

で、This support library should not use a different versionというエラーメッセージが出ている。 19を25に変更すれば、エラーは消える。ついでに最新にしておく。

compile ‘com.android.support:support-v4:25.3.1’

6. All com.android.support libraries must use the exact same version

compile ‘com.android.support:support-v4:25.3.1’

にて

All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 25.1.1, 24.0.0. Examples include com.android.support:animated-vector-drawable:25.1.1 and com.android.support:mediarouter-v7:24.0.0

とかいうエラーメッセージが出た。

compile ‘com.google.android.gms:play-services:+’

が原因のようで、 必要なものだけ追加するようにする。

例。

compile ‘com.google.android.gms:play-services-ads:10.2.1’

7. 不要なパーミッション

Android Studioでは自動でパーミッションがついてしまう。 不要なパーミッションがついて、プライバシーポリシーを追加しなくてはならなくなったりする。 ので、極力減らす。

原因1

Google Play Serviceが原因で追加されてしまう。 以下のように全て追加するのはやめる。

compile ‘com.google.android.gms:play-services:+’

以下のように必要なものだけ追加するように変更する。

compile ‘com.google.android.gms:play-services-ads:10.2.1’

原因2

インポートしている外部ライブラリで、minSdkVersionを明記しないと不要なパーミッションがついてしまう。

build/intermediates/manifets/full/の中にあるマージ後のAndroidManifestを確認すると 以下の2行が追加されてしまっていた。

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

最初はGoogle Play Serviceのせいかと思ったが、外部ライブラリのせいだった。 外部ライブラリでminSdkVersionを設定すれば解決した。 外部ライブラリのbuild.gradleにて

    defaultConfig {
        minSdkVersion 14
    }

その他、状況によってはtargetSdkVersionを指定する必要もあるようだ。

以上

JILLA - 日本イラストレーション協会に加入できる職業名一覧

f:id:itereta:20170215175944j:plain

日本イラストレーション協会に加入に加入できれば、文芸美術国民健康保険組合への加入資格を得ることが出来ます。 国民健康保険から文芸美術国保に変更すれば、保険料を大幅に節約出来きます。

ざっくりですが、国民健康保険料を20万円以上支払っている人は文芸美術国保のほうが安く済むようです。 実際にどのぐらい節約出来るかは、公式サイトにある保険料の比較で確認するといいと思います。

誰でも日本イラストレーション協会に加入できる訳ではないですが、アフィリエイターのようにホームページの作成で収入を得ている人は、ほぼ加入できます。 JILLA の方で加入できる職業名一覧を明確にしています。 以下に列記します。

イラストレーター系

  • イラストレーター
  • イラストレーション制作(業)
  • 絵本作家
  • 画家
  • 美術家
  • 建築パース(制作)
  • 3DCG(制作)
  • キャラクターデザイン

デザイナー系

  • グラフィックデザイナー
  • グラフィックデザイン
  • デザイナー
  • デザイン(業)

WEB関連事業者系

  • WEBデザイナー
  • WEBデザイン
  • HPデザイン

漫画家系

  • 漫画家
  • 漫画制作(業)
  • 漫画執筆(業)

広告関連系

  • 広告制作(業)
  • 広告デザイン(業)

その他

  • 編集(業)
  • 編集者
  • アニメーター
  • フォトレタッチャー
  • アートディレクター

加入希望の人は、「個人事業の開業等届出書」の職業種目とか確定申告の時の職業欄に上の一覧にある職業名にしておいたほうが、加入がスムーズになります。