首页 > 评测 > Android Things 之八——在树莓派3上探索GUI初步

Android Things 之八——在树莓派3上探索GUI初步

Android Things   GUI   树莓派   HDMI   
  • 作者:SATURN
  • 来源:21ic
  • [导读]
  • Android Things是有GUI的。虽然前面介绍Android Things时,我们都直接使用了Android Studio的Logcat窗口来输出相关的信息,但是从现在起,我们开始来探索Android Things的GUI世界。

class MyAdapter extends RecyclerView.Adapter {

private List mList;

@NonNull

@Override

public MyHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

View itemView = LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false);

return new MyHolder(itemView);

}

@Override

public void onBindViewHolder(@NonNull MyHolder holder, int position) {

String name = mList.get(position).toString();

holder.mTextView.setText(name);

}

@Override

public int getItemCount() {

return mList.size();

}

public void setAdapter(List names) {

mList = names;

notifyDataSetChanged();

}

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mRecyclerView = findViewById(R.id.recyclerview);

mRecyclerView.setLayoutManager(new LinearLayoutManager(this));

List peripherals = new ArrayList<>();

PeripheralManager manager = PeripheralManager.getInstance();

peripherals.addAll(manager.getPwmList());

peripherals.addAll(manager.getI2cBusList());

peripherals.addAll(manager.getSpiBusList());

peripherals.addAll(manager.getGpioList());

MyAdapter myAdapter = new MyAdapter();

mRecyclerView.setAdapter(myAdapter);

myAdapter.setAdapter(peripherals);

}

}

获取外设接口名称的方法可以使用PeripheralManager.getxxxList()来实现,只要将xxx替换为Pwm、Gpio等即可,该函数族返回的是接口的字符串列表。将这些设备字符串添加到一个列表中保存,然后传递给RecyclerView.Adapter。

RecyclerView主要包括两个组件,一个是ViewHolder,另一个是Adapter。

RecyclerView的核心思想是使用可复用的组件来显示不同的内容,不管Adapter内包含有多少数据项,在屏幕上显示的组件就只有那么几个,这样节省了资源,提高了显示效率。

ViewHolder是一个独立显示的单元,每个显示的数据都占据一个ViewHolder。从名字也可以猜测,这个ViewHolder只是一个容器,里面可以包含独立的Layout信息,也就是说可以在ViewHolder中包含若干显示组件,用来显示完整的数据项信息。

Adapter除了包含数据项以外,还用来检索需要显示的信息,并最终将这些数据显示到指定的ViewHolder中,当Adapter中的数据项发生变化后,需要使用notifiyDataSetChanged()来通知,以便更新显示的内容。

最后显示的内容如前图所示,以列表的形式显示了RPI3中所有可用的外设接口资源!

只要熟悉Android编程,在 Android Things上进行GUI设计还是很容易的。另外这里只获取设备接口名称,而没有真实使用外设,所以不需要申请外设权限,程序也能正常运行!

  • 本文系21ic原创,未经许可禁止转载!

网友评论