首页 > 评测 > Android Things 之八——在树莓派3上探索GUI初步
Android Things 之八——在树莓派3上探索GUI初步
- [导读]
- Android Things是有GUI的。虽然前面介绍Android Things时,我们都直接使用了Android Studio的Logcat窗口来输出相关的信息,但是从现在起,我们开始来探索Android Things的GUI世界。
class MyAdapter extends RecyclerView.Adapter
private List
@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
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
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原创,未经许可禁止转载!
网友评论
- 联系人:巧克力娃娃
- 邮箱:board@21ic.com
- 我要投稿
-
欢迎入驻,开放投稿
-
RAK831 Lite:基于树莓派3的LoRa网关... 2022-06-17
-
Imagination推出PowerVR AX2185和AX2145神经... 2022-06-17
-
ODROID-GO是一款兼容Arduino的基于ESP32的便... 2022-06-17
- PID温度控制器
预算:¥700003天前
- 摄像头的可视画面需要一直超上(linux系统,ARM)
预算:¥1000018小时前
- DICOM协议搭建(ARM架构,linux系统)
预算:¥1000017小时前
- 需MIPI摄像头隔离电路,实现3-4米能长距离
预算:¥1000017小时前
- 膨宫仪的控制板,控制流量和检测压力
预算:¥1000016分钟前
- 无创自动测量血压计 NIBP模块
预算:¥100007小时前