Visual Studio環境下のXamarinでの、大きな画像を縮小する際に出るエラーの回避方法について

以前に引き続き
http://oyk3865b.blog13.fc2.com/blog-entry-3030.html



私が今作っているアプリに関して
困ったことと、その回避方法に関して、
自分への備忘録として記事にさせていただきたいと思います。


まず。

これまでは、
単に、以下の方法で、
画像を希望のサイズに縮小していましたが









こちらの方法だと、
3120px X 4160px サイズの画像で処理を行うと

上記コードの

Bitmap.CreateScaledBitmap(bmp, w, h, true);


の部分で、エラーが発生してしまい、
困っておりました。


そこで、
ネットでいろいろと調べさせていただいた結果。

1.予め画像のサイズ情報だけを取得して、

2.サイズ情報から、
希望のサイズに近い読み込み時の縮小倍率を指定して、
縮小をして読み込む。

3.最終的な希望のサイズに、整える。

という方法があることを知りました。

具体的な方法は、以下の通りでございます。

※コード中のbmp_size_formatプロシージャに関しては、
上記と重複するため、割愛させて頂きます。

以下の内容は、コード中のURLは、
引用・参考にさせていただいたサイト様のURLでございます。

誠に勝手ながら、
この場にて、厚く御礼申し上げます。

また、今回のコードは、
解放を含め、正常に動作させることを目的とはせず
タイトルの機能を実現するためだけに端折っているコードでございますので
予めご了承ください。







以上の方法で、
大きな画像を読み込んだ際でも、

エラーが発生することなく
希望のサイズに変更することができました。



今後としては、

縮小時の画質の向上や
処理の高速化も、出来ていければよいかと考えております。


以上
お粗末様でございました。


P.S.

私の作成中のアプリを、
Google Playにて、更新しようとしたところ

snapshot050782328.jpg

「2018年8月以降は、新しいアプリは、Android8.0(APIレベル26)以上を対象とする必要があります。」


という警告が出てきました。


そして、
その環境を導入するには、
結構な容量を、ダウンロードする必要があるようで
snapshot003781558_2018_05_31.jpg

月額1500円。60kB/sが最大速度の
無職の我が家の環境では、
なかなか厳しいものを感じました。

そして、
DLしたら、今度は、私の持っているスマホのOSが
Android5.1.1で、自分のスマホ上で動かせないと言う・・・・。

auショップで、OSのバージョンアップできないか確認してみた所。
私のスマホでは、無理だそうでございます。

と言いますか、

Windowsさんと違って、
Googleさんは、下を切っていくのが早いですね~。 7.1を境界に切るのではなく、8.0境界とは、強気に感じました。


私が、8.0のスマホにした所で、
市中に8.0環境を持つ人間が、どの程度の割合なのか・・・。


無職の私にとっては、開発コストと手間が意外とかかるので、
無償アプリを続ける。というのにも、
限界を感じているところでございますorz


スポンサーサイト

テーマ : プログラミング - ジャンル : コンピュータ

Visual Studio環境下のXamarinでの、VBでのInputBox代用案

Visual Studio環境下のXamarinでアプリを作っていて、

VBでのInputBoxみたいに気軽に使える
入力ダイアログがないかな~。などと、
方法を探していたのですが

結局、試行錯誤して、
以下の代用案にまとまりましたので、記事にさせていただきます。


まず。
入力用のページを作成しました。

今回私は、
プロジェクトの「layout」フォルダ以下に、

「追加」→「新しい項目」→「Androidレイアウト」を
layout1という名前で追加しました。
snapshot016097203.jpg

そして、以下の内容を記述いたしました。
Screenshot_2018-05-13-12-05-25_2018_05_13.jpg











そして。

このページを動かすため、
インスタンスを、別に分けるため

MainActivity.cs、同階層に、
「追加」→「新しい項目」→「アクティビティ」を、
Activity1という名前で、追加いたしました。
snapshot016101055.jpg


そして、
InputBox(記入用)の、レイアウトを含む
インスタンスを呼び出して、
さらに、返ってきた結果を受け取るためにために、

呼び出し元に、以下のように記入いたしました。

以下の内容は、コード中のURLは、
引用・参考にさせていただいたサイト様のURLでございます。

誠に勝手ながら、
この場にて、厚く御礼申し上げます。

また、今回のコードは、
解放を含め、正常に動作させることを目的とはせず
タイトルの機能を実現するためだけに端折っているコードでございますので
予めご了承ください。









また

入力側のActivity1には、
以下のように記述いたしました。


今回は、保存するファイル名を尋ねているため
絵文字など、
ファイル名に、使用不可能な文字を取り除くコードも、含まれています。






以上のコードにより
VBでのInputBoxの代用とすることができましたが、

しかし、決して美しいコードではないため
まだまだ改良の余地があるのと思います。

お粗末様でございました。

テーマ : プログラミング - ジャンル : コンピュータ

Visual C# 2017の Xamarin 開発環境で、文字を中央揃えで描画する方法についての覚え書き

ご周知のこととは思いますが
私としては、ようやく
Visual C# 2017の Xamarin 開発環境で、文字を中央揃えで
描画する方法について、2通り分かりましたので、

メモとして、この記事に残させていただきたいと思います。
snapshot020249250_2018_05_02.jpg

1・文字を書く場所(Path)を指定して、中央揃えにする。
2・文字の描画サイズを事前に調べて、中央揃えにしたり、適切に改行させる。

以上、2通りでございます。

以下に、
今回の点を「★★★」のコメントで強調して含めた、コードを記させていただきます。

尚、コード中のURLは、
引用・参考にさせていただいたサイト様のURLでございます。

誠に勝手ながら、
この場にて、厚く御礼申し上げます。

また、今回のコードは、
解放を含め、正常に動作させることを目的とはせず
タイトルの機能を実現するためだけに端折っているコードでございますので
予めご了承ください。








以上
お粗末様でございました。

テーマ : プログラミング - ジャンル : コンピュータ

Google Playにアプリを登録したことの覚え書き その2

前回より

5.署名のkeystoreファイルを、バックアップした後は、

署名ID選択の画面に戻り
「名前を付けて保存」を、クリックしました。
snapshot022483836_2018_04_08.jpg

名前を付けて保存する際は、
パスワードを問われることがありますので

その際は、署名IDにて指定したパスワードを入力しました。
snapshot036405951.jpg


尚、
「フォルダーを開く」をクリックして、そこで出てくる.apkを、
snapshot022645753_2018_04_08.jpg

アップロードすると・・・。
snapshot059608303.jpg

『zipalingが実行されていないAPKをアップロードしました。APKで、zipalingを実行し、もう一度アップロードする必要があります。』


との警告が出て、アップロードできませんでした。

最初は気が付かなかったのですが、
この項の冒頭で、「名前を付けて保存」した先のフォルダが開く訳ではないので、
同名のファイルがあるのですが、内容が異なるapkとなっているようです。

なので、ちゃんと、

この項の冒頭で、
「名前を付けて保存」した場所のAPKを、
アップロードしてやる必要がございました。


これで、ようやくアップロードできました。
snapshot024343739_2018_04_15.jpg




6.アップロードした.apkの
「コンテンツのレーティング」の登録を行いました。

アプリのカテゴリーを選んだり
snapshot000591625_2018_04_08.jpg

・このアプリのカテゴリは、「ビジネス」ですよ。とか、
・子供が使っても大丈夫ですよ。とか、
・鉤十字は、このアプリで使っていないですよ。


など、項目を選んだり、チェックしたりしました。


尚、「レーティングの算出」の際などで
snapshot039869905_2018_04_15.jpg


「レーティングの算出」ボタンをクリックして、
もう一度、登録ボタンを押す必要があるなど、


先に進むには、同じような場所のボタンを
何度かクリックする必要がある箇所があったので、注意が必要でした。


この際に、GPSに関する機能は、
個人の場所が簡単に特定できてしまう機能のため

手続き等が、面倒だとわかりましたので。

今回は、ひとまず、
思い切って、アプリから、取り除きました。




7.「価格と販売/配布地域」を、登録しました。
snapshot039889706_2018_04_15.jpg


・このアプリは無料ですよ。とか、
・配布する国は、日本だけ選択します。とか、


選択して、同意事項に同意しました。



これで、
「公開の準備完了」という状態になりました。
snapshot039941807_2018_04_15.jpg




8.アルファ版として、公開設定を行いました。

左側の「アプリのリリース」メニューより、
今回は、「アルファ版」として公開することにしました。

「アルファ版を管理」を選択して
「クローズドアルファテスト」を、選択ししました。
snapshot039953998_2018_04_15.jpg


そして、テスターの登録をしました。

テストして頂ける了解を頂いた
友人や知人のAndroidスマホの、Gmailアドレスを、リストに登録しました。
snapshot039960700_2018_04_15.jpg


最後に、
「段階的な公開を開始」ボタンを、クリックしました。
snapshot000644609_2018_04_15.jpg
※画像は、内部テスト版として公開を試した際のものでございます。


これで、「公開中」の状態になりました。
snapshot040494620_2018_04_15.jpg




9.「テスターの管理」より
オプトインURLを、友人や知人に教えて
インストールしてもらって、テストをしてもらいました。
snapshot040570493_2018_04_15.jpg

Screenshot_2018-04-10-11-21-05_2018_04_15.jpg




以上

アルファ版としてのアプリの登録・公開手続きが完了しました。

あとは、一般公開できるように、
友人・知人などにテストをしてもらって
おかげさまで、不具合が出るわ出るわ。と、

バグをなくしていっている状態でございます。


今回の内容は、
私が、試行錯誤して、なんとかたどり着けて方法でございます。

もっと良い方法や、
間違っている部分が多々あると思います。
ご了承ください。






テーマ : パソコンな日々 - ジャンル : コンピュータ

Google Playにアプリを登録したことの覚え書き その1

この度
私のアプリを、Google Playに登録しようと
3日ほど、丸々費やして試行錯誤して、
なんとか、アプリの.apkを、Google Playにアップロード出来るに至れたので

そこまでを、自分自身が忘れないよう目的として、
覚え書きとした記事を作成させていただきました。

これも、ひとえに無職になったからこそ、出来た事でございますorz




1.まずは、
Google Play Consoleに、アカウントを作成しました。
snapshot007990531_2018_04_08.jpg


アカウントを作成するにあたって、
25ドルを、クレジットカードで支払いました。
snapshot008221910_2018_04_08.jpg

snapshot008906691.jpg


アカウントの登録が終わると
Google Play Consoleに、入れるようになりました。
snapshot009210752_2018_04_08.jpg




2.次に、
アプリの登録手続きをしました。

「Google PlayにAndroidアプリを登録」の、

左メニューバーの「ストアの掲載情報」より
今回登録したいアプリの情報を、入力しました。
snapshot010919789_2018_04_08.jpg

また、登録にあたって、
アプリのスクリーンショットや、アイコンが必要になるとのことで
作成し、登録しました。
snapshot013256964_2018_04_08.jpg

他にも、プライバシーポリシーの作成も必要とのことで
このブログの記事として、作成しました。
http://oyk3865b.blog13.fc2.com/blog-entry-2990.html





3.アプリの本体である
.apkの登録のための、署名の作成をしました。

Visual Studioのエミュレーター用のReleaseで作成したものを、
そのままアップロードしようとすると・・・。
snapshot013863598_2018_04_08.jpg

『アップロードしたAPKがデバッグモードで署名されています。APKはリリースモードで署名する必要があります。』

『パッケージ名は「com.example.app」形式で指定してください。』


とのアップロードエラーが出ました。

また、文字や、形式にも制約があるようなので
文字の制約に収まる形式に沿うように、.apkの名前を改めました。

アルファベットの大文字や、ハイフン(-)は、使用できないようです。


アプリの署名方法を、ネットで調べた結果。
メインメニューの「ビルド」→「アーカイブ」より
snapshot021160359_2018_04_08.jpg

準備の処理が走った後に、
右下に「配布」のボタンが出てくるので、
それをクリックしました。
snapshot054293115_2018_04_08.jpg


配布チャンネルを選ぶ画面になりました。
今回は、「アドホック」を、選択しました。
snapshot054327003_2018_04_08.jpg
いろいろと調べたのですが、「Google Play」では、上手くいかなかったです・・・。


続いて、ボタンより、
署名IDを、作成しました。
snapshot054834666.jpg
「少なくとも一つ」とか、書かれていますが
全ての項目を埋めないと、登録がうまくいきませんでした。




4.必ず!署名の保存と、
バックアップを行いました。

作成した署名IDの欄をダブルクリックすると、
snapshot022483836_2018_04_08.jpg


ダイアログが表示されます。
snapshot007004468.jpg
ここの、「Explorerで表示」ボタンをクリックして

表示された『.keysotre』拡張子のファイルなどを、
別途、他のフォルダにコピーして、保存しました。
snapshot007421986.jpg

これをせずに、
誤って署名を消してしまった場合・・・・。

バージョン・アップしようと、次回のapkアップロード時に
「アップロード証明書で署名されていないAPKをアップロードしました。使用する証明書は同じである必要があります。アップロード証明書のフィンガープリントは・・・」
snapshot036277890.jpg
とのエラーが出て、アップロードができなくなりました。

調べてみると、
同じアプリで、バージョンアップを続けていくには、
この同じ証明書(keystore)を、使い続ける必要があるそうです。

私のように、探りながら操作をしていて、

何かのきっかけで、署名を消したり、変更してしまった場合。
二度と、バージョンアップできなくなるそうです。


参考:『アプリ署名鍵を管理する』
https://support.google.com/googleplay/android-developer/answer/7384423?hl=ja




(アーカイブのリストを消したり増やしたり
アドホックではなく、Google Playで試したりしりが、原因??)


私は、この失敗をやってしまったので、

また、このページ2項目の
アプリの登録作業からやり直しました。




続きます。



テーマ : パソコンな日々 - ジャンル : コンピュータ

プロフィール





最新記事
最新コメント
最新トラックバック



月別アーカイブ
カテゴリ