2016年12月14日水曜日

向日葵はなぜDASH村に植えられたのか?

気になったので、放射性物質汚染には向日葵が良いよって言う記事を探してみた。

Sunflowers root out radiation(ヒマワリは放射線を根絶する)

有った。
チェルノブイリ原発から1km離れた池の中で向日葵を育てた。
水から放射性物質を吸い込んで蓄積していると書いてある。
その後に燃やして灰にして、嵩(かさ)を減らす。


そして、向日葵がシンボルとなった。
怪しい配色のサイト↓
http://www.sunflowerproject.com/

2016年12月10日土曜日

Windows Updateが時間がかかりすぎて確認出来なくなった時の対処方法

[windows updateのコンポーネントをリセットする方法]で検索

上記に従ってリセットしたら更新履歴が削除されます。

MBSA[Microsoft Baseline Security Analze]をダウンロードしてインストール

「単一のコンピューターをチェック」をデフォルト設定で「スキャンの開始」を押す。(windows updateの設定変更から更新プログラムを確認しない、にしてから再起動しないとチェックが終わらない)

1~2時間くらいで必要なファイル名が表示される。

「Microsoft Updateカタログ」で検索し、KB○○○○○○の丸部分の数字で検索、ダウンロード

ダウンロードしたファイルをインストール・再起動を繰り返す。

最後に、windows updateの設定を戻して、更新プログラムの確認をする。

2016年12月8日木曜日

Xamarin.AndroidでProguardがアクセス拒否された場合の解決法

Enable Proguard error 'C:\Program Files (Access is Denied)'
リンク先そのままの事をする

mklink /j C:\android-sdk "C:\Program Files (x86)\Android\android-sdk"

した後に、
Visual Studio2015の「ツール」→オプション→Xamarin→Android SettingのAndroidSDKの場所を先ほど作ったシンボリックリンクの場所に変更する

サードパーティのライブラリを使ったら、Debug・Release共にエラーでた。
設定のやり方が分からないので、中止。

Xamarin/Visual Studio 2015: Custom Proguard configuration

Xamarin Android ProGuard Enable

2016年12月5日月曜日

Visual studio Emulator for Androidでネットワークに繋がらない

解決法
http://stackoverflow.com/questions/30021277/how-to-connect-visual-studio-2015-android-emulator-to-network

Xamarin Android Playerを使っていたので、VritualBoxの設定が残ったままだった。
それを無効化してEmulatorを再起動したら繋がった。

2016年11月25日金曜日

今更、テラリアで複数クラフトするときの作業台の置き方を画像で分かりやすく コピペ

ネット上にあった基本の置き方
足場の上に椅子を置いているのが、ちょっと見えにくい
ワークベンチの上に立つ事で作業可能スペースに全て収まる
(作業可能スペース=上方向に横4:縦3,下方向に横4:縦4)

拡張性もある(画像は酒樽を置いて、効果を確認)

作業台の入れ替え可能
上方向には4x3,下方向には4x4に作業台が1マスでも入れば良い
確認するときは、ワークベンチの片側に立ち、反対側へ作業可能スペースを調べる。
(ワークベンチの上にある瓶と重なるように立つと決めて、横1マス分増やすのも良い)
この図ではワークベンチの上に立てば、
作業台+椅子,机+椅子,かまど,金床,のこぎり台,機織り,本棚,練成台,瓶,水場,釜,樽,
以上全ての作業台のクラフティングができる。

宝箱を開いてクラフティングした結果



2016年11月15日火曜日

Android.Views.InflateException: Binary XML file line Error inflating class が出た時の解決法 備忘録

エミュレータ上では起こらず、実機でエラーの場合は
https://chobitech.com/blog/?p=22
を参考にする。
今までで遭遇したのは
AndroidManifest.xmlが壊れていないか
テーマの適用を忘れてないか
参照ファイルが壊れてないか

エミュレータ上ですでに出る場合についてのメモ

stackoverflow.comでは、ライブラリの再インストールが主な解決法として挙げられている。


まず、確認すべきは
layout.axml に書かれているツール名の綴りミスだった。
http://increment.hatenablog.com/entry/2015/07/19/093309

コピペしていると、その人が使用しているライブラリの名前をそのままコピペすることになるので、こんな単純なことが起きる。


styleの設定忘れもある
http://qiita.com/SYABU555/items/c5351bf3b3be9f057ef2

2016年8月4日木曜日

RecyclerViewにアイテムクリックとアイテムロングクリックを実装するメモ[Visual Studio 2015 with Xamarin.Android]

このメモは
https://developer.xamarin.com/guides/android/user_interface/recyclerview/
を参考にしています。ほとんど一緒。
イベント2種類くらいだからこれで良いのか?

まずは、  public class myViewHolder : RecyclerView.ViewHolderのコンストラクタをオーバーロードすると以下になる。




public class listViewHolder : RecyclerView.ViewHolder
    {
        public listViewHolder(View rootView, Action listener, Action Longlistener)
            : base(rootView)
        {

Action<int> listener, Action<int> Longlistenerを追加している。

そのコンストラクタの中で
 rootView.LongClick += (sender, e) => Longlistener(base.AdapterPosition);
            rootView.Click += (sender, e) => listener(base.AdapterPosition);
クリックとロングクリックを発動させる為に登録。

次に、先ほど作ったRecyclerView.ViewHolderのコンストラクタを使うために

    public class myAdapter : RecyclerView.Adapter
に二つのイベントハンドラを用意。
例)
        public event EventHandler<int> ItemClick;
        public event EventHandler<int> ItemLongClick;

このイベントハンドラを使うのは、
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup viewGroup, int viewType)
のリターン文。
例)
return new myViewHolder(view, OnClick,OnLongClick);

で、実際にrecyclerviewにイベントを渡すためにAdapterに以下を付ける。

        void OnClick(int position)
        {
            if (ItemClick != null)
                ItemClick(this, position);
        }
        void OnLongClick(int position)
        {
            if (ItemLongClick != null)
                ItemLongClick(this, position);
        }

最後に、  mAdapter = new myAdapter(mItem);アイテムを登録した所でイベント登録。

            mLAdapter.ItemClick += (sender, e) =>

            {

                var activity = (MainActivity)Activity;

                activity.ListItemClickListener(mLAdapter.GetItem(e));

                WebDownload.DownloadImagetoSD(mLAdapter.GetItem(e));

            };

            mLAdapter.ItemLongClick += (sender, e) =>

            {

                var activity = (MainActivity)Activity;

                activity.DialogShow(mLAdapter.GetItem(e));

            };





2016年7月24日日曜日

Visual Studio 2015 with Xamarin AndroidでNendのネイティブアドの広告コードをWebViewに

参考URL:http://lab.adn-mobasia.net/?p=2064

AndroidアプリでnendSDKが使えなくてもnend広告を表示する方法

より


詰まった点

mWebViewNendAd.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
 startActivity(intent);
return true;
 }
} );



Xamarin では


呼び出し

mWebViewNendAd.SetWebViewClient(new myWebViewClient(Activity));

プライベートクラス


private class myWebViewClient : WebViewClient
        {
            Context context;
            public myWebViewClient(Context context)
            {
                this.context = context;
            }
            public override bool ShouldOverrideUrlLoading(WebView view, string _url)
            {
                var url = Android.Net.Uri.Parse(_url);
                var intent = new Intent(Intent.ActionView, url);
                context.StartActivity(intent);
                return true;
            }
        }

contextを渡せば良いだけだった。

Visual Studio 2015 with Xamarin AndroidでWebViewにProgressBarを追加する

Point XML

RelativeLayoutでwebviewを先に置いて、ProgressBarで上書き


Point source

SetWebChromeClientにoverrideしたプライベートクラスを適応し、
そのクラスにProgressBarを渡しているだけ


気になること
ProgressBarを渡したけど、問題は出ないのだろうか?
こういうのを確かめないからいつまでもコピペ。

追記
2016/07/25
問題でてた。タップされるまで動画が表示されない。
いったん修正。

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/DIframeLayout">
    <WebView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/FwebView"
        android:layout_centerInParent="true" />
  <ProgressBar
    android:id="@+id/FprogressBar"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />
</RelativeLayout>

ソース

//…省略…/
public override Android.Views.View OnCreateView(Android.Views.LayoutInflater inflater, Android.Views.ViewGroup container, Bundle savedInstanceState)
        {
            var root = inflater.Inflate(Resource.Layout.fragmentWebView, container, false);
            fWebView = root.FindViewById<WebView>(Resource.Id.FwebView);
            fProgress = root.FindViewById<ProgressBar>(Resource.Id.FprogressBar);

//…省略…/
 fWebView.SetWebChromeClient(new myWebChromeClient(fProgress));

//…省略…/
return root;

//…省略…/

 public class myWebChromeClient : WebChromeClient
        {
            private ProgressBar fProgress = null;
            public myWebChromeClient(ProgressBar setProgress) : base()
            {
                this.fProgress = setProgress;
            }

            public override void OnProgressChanged(WebView view, int newProgress)
            {
                if (fProgress != null)
                {
                    fProgress.Progress = newProgress;
                    if (newProgress == 100)
                    {
                     fProgress.Animate().SetDuration(1000).Alpha(0.0f);
                    }
                    else
                    {
                        fProgress.Alpha = 1.0f;
                    }
              }
          }

Android SDK manual download and offline install

First step

request 1 : Acsess to Internet by PC_1[download only]
request 2 : offline install by target PC_2

Install

・JDK download and install

・Android SDK [https://developer.android.com/studio/index.htm]
download [installer_r??.?.?-***.exe] and install by target PC

Second

targetPC\...\Android\android-sdk\

make folder [temp]


Thrid

Acsess and Download

Acsess
[http://dl-ssl.google.com/android/repository/repository-12.xml]
or
[http://dl-ssl.google.com/android/repository/repository-1?.xml]   ?= 3,4,5,...

[Ctrl + F] -> ".zip</"

ex. tools_r25.1.7-windows.zip

Download

http://dl-ssl.google.com/android/repository/[Find name]

ex. [http://dl-ssl.google.com/android/repository/tools_r25.1.7-windows.zip]

Fourth

Download File to [temp]
targetPC\...\Android\android-sdk\temp

Fifth

SDK Manager.exe 

1.check download file name
2.check box
3.Install button

complete.

Visual Studio2015 with Xamarin Androidはオフラインインストール出来ない

https://msdn.microsoft.com/library/e2h7fzkw.aspx
にあるように、AndroidSDKはオフラインインストールに対応していない。

なので、同じページにあるVS2015のコマンドラインパラメータの使用にある

「/layout Directory」:インストール メディアのファイルを指定したディレクトリにコピーします。

を使っても、意味がない。
AndroidSDKを先にインストールしていても、VS2015と紐づけするためにダウンロードされたので、
オフラインインストールはできなかった。

実際のコマンド