渡くんの××が崩壊寸前(8)

紗月の実家の家族は、各々裏がありそうで実際にはたいした裏が無く、どちらかといえばみんな善人。お互いに遠慮しているせいで関係が拗れてしまっていたみたいだった。そこに渡くんという外的要因が加わることで、拗れた関係を良い方向に修正することができて、実家問題は無事解決。渡くんの優しさが際立った巻だったな。

マリンワールド海の中道

子供が通ってる幼稚園から貰った割引券があったので、家族で『マリンワールド海の中道』に行った。車を持っていないので、地下鉄とバスを乗り継いで 1 時間半超。遠かったけど、公共交通機関を使って海の中道まで行けるようになったんだなと、子供の成長を感じて感慨深い。

マリンワールドは 2017 年 4 月に全館リニューアルオープンしたらしい。ただ、最後に来たのは 10 年くらい前なので、変わる前は覚えていない。リニューアルしただけあって、エントランスは綺麗で開放感あって期待大。

順路の途中、建物の中なのに、森みたいなエリアが。阿蘇を再現した「阿蘇 水の森」というらしい。水音と鈴虫の音が鳴っていて涼しげな空間だった。

パノラマ大水槽は記憶と変わりない気がする。サメやエイやら、イワシやら。たくさんの魚が回遊していて、ずっと見ていられそう。ちょうど、ダイバーによるお魚紹介が始まったころに着いたので、タイミング良かった。

アシカとイルカのショーは大盛況で、立ち見だった。前の方は若干空いてたけど、水飛沫が飛んでくるエリアなので、流石にこの歳で濡れるのは勘弁。

ショーではイルカだけでなくクジラもいて、そのクジラがジャンプする姿が精一杯頑張っているように見えて、ついついクジラの方を応援してしまった。

大水槽の奥にはスナメリがいる水槽もあって、その愛らしい姿を堪能することができた。

10 年ぶりのマリンワールドだったけど、見所が増えていて大人でも十分楽しめた。子供もショーを見たり、海獣コーナーでエサをあげたりと、いろいろ経験させてあげられたので、頑張って公共交通機関乗り継いで来た甲斐あった。また来年の夏休みぐらいに、幼稚園から割引券を貰えたら行く、かもしれない。

marine-world.jp

スタミナ亭

最近は肉を食べたい欲求が強くて、トンカツも良いんだけど、やはり牛肉。それも焼肉。身体が焼肉を欲していたので、中央区清川にある『スタミナ亭』に行ってみた。

セットは一見お得に見えて、特に食べたいわけじゃないホルモンやナムルが含まれているので、個人的にそれほどお得に思えない。好きなものだけ個別に注文するのが、結果的に満足度が高いと思っている。なので、カルビとハラミとご飯を注文。

ロースとタン塩も追加で注文したけど、写真撮り忘れた。迂闊。ロースが特に柔らかくて、一番好みだったな。お代わりしたし。子供もロースはパクパク食べていた。

カルビ、ハラミ、ロース、タン塩と、好きな肉だけを腹一杯になるまで食べることができて、なかなか良いお値段したけど、満足感はひとしお。

王様達のヴァイキング(19)

是枝と坂井の航海が 19 巻でついに完結。 魔王退治は蘇芳の自白があっさり取れて拍子抜けと思いきや、やはり一筋縄ではいかなかった。 道連れに世界を破滅させようと目論んだ蘇芳の切り札との最終決戦。 しかも連戦ときた。 武器は剣ではなくラップトップだけど、 展開の熱さはまさに RPG のラスボスとのファイナルバトルさながらだ。

それにしても、航海の果てにたどり着いたゴール、世界征服が OSS だとはなぁ。 確かに、現実世界でも Linux は世界征服しているようなものだな。 坂井に対して、開発したシステムの OSS 化を訴えたり、今度は是枝から新しい航海に誘ったりしたその姿には、出会ってから現在に至るまでの成長っぷりをヒシヒシと感じられてシビれた。二人の航海は続く。

王様達のヴァイキング (19) (ビッグコミックス)

王様達のヴァイキング (19) (ビッグコミックス)

Xamarin.Android でフラグメントを切り替える際にアニメーションをつける

Xamarin.Android で Fragment の切り替えによってページ遷移を実現しているんだけど、 iOS の UINavigationController みたいな遷移アニメーションをなんとか実装できたので、 メモを残しておく。

まず、右から左にスライドインするアニメーションが Android.Resource.Animation に無かったので、Resources/anim/slide_in_right.xml を作成。

<?xml version="1.0" encoding="UTF-8" ?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
  <translate
    android:fromXDelta="100%p"
    android:toXDelta="0"
    android:duration="@android:integer/config_mediumAnimTime"/>
  <alpha
    android:fromAlpha="0.0"
    android:toAlpha="1.0"
    android:duration="@android:integer/config_mediumAnimTime" />
</set>

右から左にスライドアウトするアニメーションも無かったので、Resources/anim/slide_out_left.xml を作成。

<?xml version="1.0" encoding="UTF-8" ?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
  <translate
    android:fromXDelta="0"
    android:toXDelta="-100%p"
    android:duration="@android:integer/config_mediumAnimTime"/>
  <alpha
    android:fromAlpha="1.0"
    android:toAlpha="0.0"
    android:duration="@android:integer/config_mediumAnimTime" />
</set>

あとは、SupportFragmentManager を使ってフラグメントを切り替える際に、作成したアニメーションの ID を指定する。

var transaction = SupportFragmentManager.BeginTransaction();
transaction.AddToBackStack(null);
transaction.SetCustomAnimations(
    Resource.Animation.slide_in_right,
    Resource.Animation.slide_out_left,
    Android.Resource.Animation.SlideInLeft,
    Android.Resource.Animation.SlideOutRight);
transaction.Replace(
    containerViewId,
    fragment);
transaction.Commit();

戻るとき左から右にスライドするアニメーションは Android.Resource.Animation にあったので、それを使っておく。

Xamarin.Android でアイコンフォントを使う

アイコンフォントを Xamarin.Android プロジェクトに組み込む

  1. Assets フォルダにアイコンフォントのファイル(.ttf)を追加。
    • Assets 直下ではなく fonts フォルダを作って、その下に追加してもいい。
  2. 追加したファイルのビルドアクションを AndroidAsset にする。

Bitmap に変換して使う

アイコンフォントを Bitmap に変換するメソッドを用意しておく。

using Android.Content;
using Android.Graphics;
using Android.Util;

public static class BitmapEx
{
    public static Bitmap FromFontAsset(
        Context context,
        string path,
        string glyph,
        float size,
        Color color)
    {
        var paint = new Paint
        {
            TextSize = TypedValue.ApplyDimension(
                ComplexUnitType.Dip,
                size,
                context.Resources.DisplayMetrics),
            Color = color,
            TextAlign = Paint.Align.Left,
            AntiAlias = true,
        };

        var typeface = Typeface.CreateFromAsset(context.Assets, path);
        paint.SetTypeface(typeface);

        var width = (int)(paint.MeasureText(glyph) + .5f);
        var baseline = (int)(-paint.Ascent() + .5f);
        var height = (int)(baseline + paint.Descent() + .5f);

        var image = Bitmap.CreateBitmap(width, height, Bitmap.Config.Argb8888);
        var canvas = new Canvas(image);
        canvas.DrawText(glyph, 0, baseline, paint);

        return image;
    }
}

ImageView とかに表示するには画像に変換してやる必要があるので、このメソッドを使う。

var bitmap = BitmapEx.FromFontAsset(
    context: Context,
    path: "Assets を起点にしたアイコンフォントファイルの相対パス",
    glyph: "アイコンの Unicode",
    size: 20,
    color: Android.Graphics.Color.White);
imageView.SetImageBitmap(bitmap);

かぐや様は告らせたい(16)

16巻は冬休み編。会長とかぐやのデートでは、かぐやが会長に想いを伝える場面をどんな演出にするんだろうと思っていたら、まさかの白銀父の語りだった。この演出は斬新…かもしれない。会長とかぐやのセリフがほとんど無いという、溜めに溜めてからの、かぐやのセリフの破壊力たるや。

一方、石上とミコとつばめの関係は拗れそうで、この漫画に似つかわしくないドロドロ三角関係に発展しないか不安。会長とかぐやみたいな恋愛頭脳戦には、まずならないだろうからなぁ。

ややシリアスな話も含んでいた16巻の中で、マキと藤原書記の存在はある意味癒しだな。藤原書記の顔芸はもはやヒロインにあるまじきレベル。一応、本作のヒロインなんだけどね。

マキの方は、まさか双子の弟がいて、それがあの四条帝だったとは驚きだった。四条帝といったら全国模試で会長の名前の上にあったわけで、いずれはかぐやを巡って争うラスボスなのでは、と噂されていたが、マキの弟ならその展開はなさそうだ。