【问题标题】:ListVIew on Google Glass谷歌眼镜上的列表视图
【发布时间】:2014-03-31 07:44:32
【问题描述】:

有没有一种可能的方法可以在 Google Glass 上实现一个列表,该列表的外观和功能(通过头部移动滚动)类似于 Glass 主屏幕上的列表。

我提到的列表在 Glass 上是这样的:

我找不到任何有关这方面的文档,因此我们将不胜感激。

【问题讨论】:

    标签: android list google-glass


    【解决方案1】:

    这是一个ListView,它对头部运动做出反应,还有一个ScrollView

    【讨论】:

    • 谢谢你,这会让我开始:)
    • 如果你被卡住了,这里有一些工作示例github.com/chrisberry
    • 嗨,pscholl。您提供的链接不再可用。如果您有时间并且愿意,请更新它们:)。谢谢!
    【解决方案2】:

    这是我自己的头部可滚动列表视图的示例。这是一个非常简单和原始的例子。从这个,我认为您可以根据需要开发自己的自定义头部可滚动列表视图。它只有一个包含多个项目的列表视图和一个检索头部角度的传感器管理器。基于俯仰角并借助线性映射公式(将头部角度间隔与列表视图中项目数表示的间隔映射),我可以轻松制作一个头部可滚动的列表视图。希望对你有帮助。

    布局:

    <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"
          android:paddingBottom="@dimen/activity_vertical_margin"
          android:paddingLeft="@dimen/activity_horizontal_margin"
          android:paddingRight="@dimen/activity_horizontal_margin"
          android:paddingTop="@dimen/activity_vertical_margin"
          tools:context="com.example.headangles.MainActivity" >
    
          <ListView
               android:id="@+id/list"
               android:layout_height="wrap_content"
               android:layout_width="match_parent">
           </ListView>
    
    </RelativeLayout>
    

    活动:

    public class MainActivity extends Activity implements SensorEventListener {
    
    private SensorManager mSensorManager;
    private Sensor mOrientation;
    
    ListView listView ;
    ArrayAdapter<String> adapter;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
        mOrientation = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
        mSensorManager.registerListener(this, mOrientation, SensorManager.SENSOR_DELAY_GAME);
    
        // Get ListView object from xml
        listView = (ListView) findViewById(R.id.list);
    
        // Defined Array values to show in ListView
        String[] values = new String[] { "Android List View", 
                "Adapter implementation",
                "Simple List View In Android",
                "Create List View Android", 
                "Android Example", 
                "List View Source Code", 
                "List View Array Adapter", 
                "Android Example List View" 
        };
    
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values);
    
        // Assign adapter to ListView
        listView.setAdapter(adapter); 
    }
    
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {}
    
    @Override
    public void onSensorChanged(SensorEvent event) {
        /* *** need only pitch angle (head bouncing backwards and forward)*** */
        float pitch_angle = event.values[1];
    
        /* *** first interval head angle degrees *** */
        int top_head_angle_limit = -110;
        int bot_head_angle_limit = -70;
    
        /* *** second interval *** */
        int top_list_item_limit = 0;
        int bot_list_item_limit = adapter.getCount();
    
        /* *** linear mapping/ map interval [-110,-70](head angle degrees) -> [0, 8] list items *** */
        /* *** linear mapping formula: (val - A)*(b-a)/(B-A) + a *** */
        if(pitch_angle >= top_head_angle_limit && pitch_angle <= bot_head_angle_limit){
            int selection = (int) ((pitch_angle - top_head_angle_limit)*(bot_list_item_limit - top_list_item_limit)/(bot_head_angle_limit - top_head_angle_limit) + top_list_item_limit);
            Log.e("selection: ", String.valueOf(selection));
            listView.setSelection(selection);
        }
    }
    

    }

    【讨论】:

    • clicking an item 怎么样,我们能做到吗?我是说专注的那个?试过listView.setOnItemClickListener() 还是不行
    猜你喜欢
    • 2014-08-02
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多