自学安卓有一小段时间了,总想快点往后学,现在总有种欲速则不达的感觉,有很多东西第二次看还是有些收获,自己写过的就更不用说了,所以先记录下目前已经做了的“半成品”吧。
从“自己和自己聊“到和图灵机器人聊
至于图二她回复是星蔚机器人是因为对创建的机器人在人物设置做了一点改动。可惜的是现在免费的接口只能每天调用100次了,这是图灵机器人官网http://www.turingapi.com/
网上也有许多实现和她聊天的方法,本文只写出一种,经供参考:
我用的是一个第三库RxVolley
github地址: https://github.com/kymjs/RxVolley
添加依赖
implementation 'com.kymjs.rxvolley:rxvolley:1.1.4'
其他代码省略了。只贴出调用图灵接口的部分:
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数据
pasingJson(t);
}
});
}//try
catch (Exception e) {
//无网络处理
Msg msgtuling = new Msg("网络异常", Msg.TYPE_RECEIVED);
msgList.add(msgtuling);
}
解析json数据的函数:
//解析json数据并添加至左边
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是跟着网上的教学视频做的,在此基础上想添加一些功能,为啥又是半成品,因为基于官方的sqlite的,后期想尝试第三方数据库框架litepal再尝试一下,而且功能上还没有图表统计功能,只能对账目进行增删改查。后面会学习hellocharts来绘制图表信息。
用到了一个数字滚动效果的开源库: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());
需要改变显示的内容则调用setText方法即可,注意只能显示数字。
目前已完成的效果图如下:
1551098859661.gif
初识百度地图api(又是半成品)
本来是小组想做个校车呼叫app,但好像后端部分还没人能做,所以暂时放下了,就实现了定位和标记给定gps点的功能,标计了几个小人和一辆车放在地图上而已。
理想状态当然是访问后端接口获取学生和车的gps然后再标记,当然还有实现上传gps到后端等等。
效果如下:
1551100034668.gif
对给定GPS标记的方法:
//x:纬度,y:经度
private void setMarker(double x,double y) {
//定义Maker坐标点
LatLng point = new LatLng(x,y);
//构建Marker图标
BitmapDescriptor bitmap = BitmapDescriptorFactory
.fromResource(R.mipmap.stu);//R.mipmap.stu资源图片
//构建MarkerOption,用于在地图上添加Marker
OverlayOptions option = new MarkerOptions()
.position(point)
.icon(bitmap).draggable(false);//禁止拖拽
//在地图上添加Marker,并显示
baiduMap.addOverlay(option);
}
总结:欲速则不达,一步一脚印
这个寒假也是转瞬即逝,最开心得无非就是用奖学金买了台显示器呗,嘿嘿,典型用了就回不去了,双屏还是很舒服滴。寒假的其他感悟莫过于过年打工的那几天,从来没自己赚过钱,赚多赚少已经不重要了(其实还挺高,毕竟是过年的时候)。扯远了,新的学期好好看好好听好好学。
IMG_20190225_193205.jpg
网友评论