自學安卓有一小段時間了,總想快點往后學,現(xiàn)在總有種欲速則不達的感覺,有很多東西第二次看還是有些收獲,自己寫過的就更不用說了,所以先記錄下目前已經(jīng)做了的“半成品”吧。
從“自己和自己聊“到和圖靈機器人聊
至于圖二她回復是星蔚機器人是因為對創(chuàng)建的機器人在人物設置做了一點改動??上У氖乾F(xiàn)在免費的接口只能每天調(diào)用100次了,這是圖靈機器人官網(wǎng)http://www.turingapi.com/



網(wǎng)上也有許多實現(xiàn)和她聊天的方法,本文只寫出一種,經(jīng)供參考:
我用的是一個第三庫RxVolley
github地址: https://github.com/kymjs/RxVolley
添加依賴
implementation 'com.kymjs.rxvolley:rxvolley:1.1.4'
其他代碼省略了。只貼出調(diào)用圖靈接口的部分:
try {
String url = "http://www.tuling123.com/openapi/api?" +
"key=" + "你申請的APIkey" + "&info=" + content;
RxVolley.get(url, new HttpCallback() {
@Override
public void onSuccess(String t) {
/解析返回的JSON數(shù)據(jù)
pasingJson(t);
}
});
}//try
catch (Exception e) {
//無網(wǎng)絡處理
Msg msgtuling = new Msg("網(wǎng)絡異常", Msg.TYPE_RECEIVED);
msgList.add(msgtuling);
}
解析json數(shù)據(jù)的函數(shù):
//解析json數(shù)據(jù)并添加至左邊
private void pasingJson(String message){
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(message);
String text = jsonObject.getString("text");
Msg msg2 =new Msg(text,Msg.TYPE_RECEIVED);
msgList.add(msg2);
adapter.notifyItemInserted(msgList.size()-1);//當有新消息時,刷新RecycleiView中的顯示
msgRecyclerView.scrollToPosition(msgList.size()-1);//將RecycleiView定位到最后一行
} catch (JSONException e) {
e.printStackTrace();
}
}
另一個“半成品”:賬本app
這個app是跟著網(wǎng)上的教學視頻做的,在此基礎上想添加一些功能,為啥又是半成品,因為基于官方的sqlite的,后期想嘗試第三方數(shù)據(jù)庫框架litepal再嘗試一下,而且功能上還沒有圖表統(tǒng)計功能,只能對賬目進行增刪改查。后面會學習hellocharts來繪制圖表信息。
用到了一個數(shù)字滾動效果的開源庫:tickerView
這是github地址:https://github.com/robinhood/ticker
使用方法:
添加依賴
implementation 'com.robinhood.ticker:ticker:2.0.1'
試圖文件中的寫法與TextView相似
<com.robinhood.ticker.TickerView
android:paddingTop="10dp"
android:layout_centerHorizontal="true"
android:id="@+id/amount_text"
android:gravity="center"
android:layout_alignParentBottom="true"
android:text="100"
android:textSize="65dp"
android:textColor="@android:color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
activity文件中聲明并使用:
final TickerView tickerView = findViewById(R.id.tickerView);
tickerView.setCharacterLists(TickerUtils.provideNumberList());
需要改變顯示的內(nèi)容則調(diào)用setText方法即可,注意只能顯示數(shù)字。
目前已完成的效果圖如下:

初識百度地圖api(又是半成品)
本來是小組想做個校車呼叫app,但好像后端部分還沒人能做,所以暫時放下了,就實現(xiàn)了定位和標記給定gps點的功能,標計了幾個小人和一輛車放在地圖上而已。
理想狀態(tài)當然是訪問后端接口獲取學生和車的gps然后再標記,當然還有實現(xiàn)上傳gps到后端等等。
效果如下:

對給定GPS標記的方法:
//x:緯度,y:經(jīng)度
private void setMarker(double x,double y) {
//定義Maker坐標點
LatLng point = new LatLng(x,y);
//構(gòu)建Marker圖標
BitmapDescriptor bitmap = BitmapDescriptorFactory
.fromResource(R.mipmap.stu);//R.mipmap.stu資源圖片
//構(gòu)建MarkerOption,用于在地圖上添加Marker
OverlayOptions option = new MarkerOptions()
.position(point)
.icon(bitmap).draggable(false);//禁止拖拽
//在地圖上添加Marker,并顯示
baiduMap.addOverlay(option);
}
總結(jié):欲速則不達,一步一腳印
這個寒假也是轉(zhuǎn)瞬即逝,最開心得無非就是用獎學金買了臺顯示器唄,嘿嘿,典型用了就回不去了,雙屏還是很舒服滴。寒假的其他感悟莫過于過年打工的那幾天,從來沒自己賺過錢,賺多賺少已經(jīng)不重要了(其實還挺高,畢竟是過年的時候)。扯遠了,新的學期好好看好好聽好好學。
