0

ここ ( https://developer.android.com/training/wearables/watch-faces/service.html ) で説明されているように、ウォッチフェイスを描画するには OnDraw メソッドを使用する必要があります。代替手段はありませんか?

これは冗談ですか?xml管理からのレイアウトはありませんか? dpi管理はありませんか?画面フォーマット管理なし?などなど?

本当?

私が間違っていると教えてください!

PS このページ ( http://www.binpress.com/tutorial/how-to-create-a-custom-android-wear-watch-face/120 ) は、通常のアクティビティを使用してウォッチフェイスを作成します。正しいかどうか?

4

2 に答える 2

6

WatchFaceService の onCreateEngine() で、インフレータを取得します。

mInflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

次に、エンジンの onCreate() で、レイアウトを拡張します。

mFrameLayout = (FrameLayout) mInflater.inflate(R.layout.main, null);

次に onDraw() で、ビューを測定、レイアウト、および描画します。

        //Measure the view at the exact dimensions (otherwise the text won't center correctly)
        int widthSpec = View.MeasureSpec.makeMeasureSpec(bounds.width(), View.MeasureSpec.EXACTLY);
        int heightSpec = View.MeasureSpec.makeMeasureSpec(bounds.height(), View.MeasureSpec.EXACTLY);
        mFrameLayout.measure(widthSpec, heightSpec);

        //Lay the view out at the rect width and height
        mFrameLayout.layout(0, 0, bounds.width(), bounds.height());

        mFrameLayout.draw(canvas);

TextClock でこれを行うことを期待しないでください。Android Wear にはありません。どうやら、Google は開発者がウォッチフェイスに時計を表示したいとは思っていなかったようです!

于 2015-01-04T02:59:06.007 に答える
1

そうです、Canvas または OpenGL を使用する必要があります。あなたが提供したリンクは、5.0より前のバージョンで機能する古い回避策を説明しています。ここで、新しい API を使用する必要があります。

于 2015-01-01T12:38:47.590 に答える