首頁(yè) > 評(píng)測(cè) > Android Things 之八——在樹(shù)莓派3上探索GUI初步
Android Things 之八——在樹(shù)莓派3上探索GUI初步
- [導(dǎo)讀]
- Android Things是有GUI的。雖然前面介紹Android Things時(shí),我們都直接使用了Android Studio的Logcat窗口來(lái)輸出相關(guān)的信息,但是從現(xiàn)在起,我們開(kāi)始來(lái)探索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);
}
}
獲取外設(shè)接口名稱(chēng)的方法可以使用PeripheralManager.getxxxList()來(lái)實(shí)現(xiàn),只要將xxx替換為Pwm、Gpio等即可,該函數(shù)族返回的是接口的字符串列表。將這些設(shè)備字符串添加到一個(gè)列表中保存,然后傳遞給RecyclerView.Adapter。
RecyclerView主要包括兩個(gè)組件,一個(gè)是ViewHolder,另一個(gè)是Adapter。
RecyclerView的核心思想是使用可復(fù)用的組件來(lái)顯示不同的內(nèi)容,不管Adapter內(nèi)包含有多少數(shù)據(jù)項(xiàng),在屏幕上顯示的組件就只有那么幾個(gè),這樣節(jié)省了資源,提高了顯示效率。
ViewHolder是一個(gè)獨(dú)立顯示的單元,每個(gè)顯示的數(shù)據(jù)都占據(jù)一個(gè)ViewHolder。從名字也可以猜測(cè),這個(gè)ViewHolder只是一個(gè)容器,里面可以包含獨(dú)立的Layout信息,也就是說(shuō)可以在ViewHolder中包含若干顯示組件,用來(lái)顯示完整的數(shù)據(jù)項(xiàng)信息。
Adapter除了包含數(shù)據(jù)項(xiàng)以外,還用來(lái)檢索需要顯示的信息,并最終將這些數(shù)據(jù)顯示到指定的ViewHolder中,當(dāng)Adapter中的數(shù)據(jù)項(xiàng)發(fā)生變化后,需要使用notifiyDataSetChanged()來(lái)通知,以便更新顯示的內(nèi)容。
最后顯示的內(nèi)容如前圖所示,以列表的形式顯示了RPI3中所有可用的外設(shè)接口資源!
只要熟悉Android編程,在 Android Things上進(jìn)行GUI設(shè)計(jì)還是很容易的。另外這里只獲取設(shè)備接口名稱(chēng),而沒(méi)有真實(shí)使用外設(shè),所以不需要申請(qǐng)外設(shè)權(quán)限,程序也能正常運(yùn)行!
-
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評(píng)論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開(kāi)放投稿
- NRF52810藍(lán)牙數(shù)字耳機(jī)找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開(kāi)發(fā)
預(yù)算:¥1100000015小時(shí)前
- 12V汽車(chē)啟動(dòng)電源項(xiàng)目BMS設(shè)計(jì)
預(yù)算:¥50000023小時(shí)前
- 數(shù)據(jù)可視化軟件 開(kāi)發(fā)
預(yù)算:¥5000023小時(shí)前
- PLC項(xiàng)目調(diào)試修改
預(yù)算:¥100001天前
- 起動(dòng)電機(jī)控制器開(kāi)發(fā)
預(yù)算:¥1100001天前