www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

首頁(yè) > 評(píng)測(cè) > Android Things 之八——在樹(shù)莓派3上探索GUI初步

Android Things 之八——在樹(shù)莓派3上探索GUI初步

  • 作者:SATURN
  • 來(lái)源:21ic
  • [導(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 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);

}

}

獲取外設(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)放投稿

熱門(mén)標(biāo)簽
項(xiàng)目外包 more+