我从零开始为移动设备(minSdkVersion at 9)和wear(minSdkVersion at 20)模块创建了一个新项目,我想知道如何指定磨损和磨损方形的布局(我需要稍微使用WatchViewStub类吗?)设备。就像,我知道数据从掌上电脑发送到磨损,但我如何配置它,以便应用程序在磨损和磨损方形布局上运行(特别是仅使用XML文件)?
这是我的手机\ ... \ activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Hello mobile world!"
android:id="@+id/textView"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
至于wear模块下的布局,一切都是默认的(我没有修改任何东西),因此包括但不限于通过实现WatchViewStub类的inflater,用于圆形和方形屏幕的XML应输出“Hello Square World!”和“Hello Round World!”,分别等等。
这是我原状的磨损\ ... \ MainActivity:
package dpark.gameoflife;
import android.app.Activity;
import android.os.Bundle;
import android.support.wearable.view.WatchViewStub;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
@Override
public void onLayoutInflated(WatchViewStub stub) {
mTextView = (TextView) stub.findViewById(R.id.text);
}
});
}
}
...然后这就是我从磨损虚拟仿真器得到的东西:
为什么上面的圆形虚拟仿真器不会出现圆形?
谢谢,我非常感谢。
答案 0 :(得分:1)
资源限定符layout-round
和layout-square
仅在SDK级别23中引入。要针对圆形和方形显示使用不同布局定位较早的级别,您需要使用WatchViewStub
或BoxInsetLayout
,documented here。
根据您的发布时间表,您也可以在可穿戴方面定位SDK 23。 23已经出现在大多数手表上了,谷歌已经表示所有Wear设备都会很快得到它(ish)。
至于你的圆形模拟器显示方形...没有很好的解释,但他们有时会这样做。重新启动它几次,删除并重新创建它,如果必须的话,最终它应该自行解决。