ToolBar的使用
来源:互联网 发布:无锡胡埭加工中心编程 编辑:程序博客网 时间:2024/05/22 05:07
1、创建一个公共的Toolbar
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<!-- 设置高度为 ActionBar 的高度 -->
<!-- 背景颜色为 ActionBar 的背景颜色 -->
<!-- 返回按钮的图标 -->
<android.support.v7.widget.Toolbar
android:id="@+id/public_tool_bar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:navigationIcon="?attr/homeAsUpIndicator"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" >
<TextView
android:id="@+id/public_tool_bar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:maxLength="7"
android:textColor="#ffffff"
android:textSize="@dimen/title_size"
android:textStyle="bold" />
</android.support.v7.widget.Toolbar>
</FrameLayout>
2、新建Activity基类
/**
* Created by ww on 2016/3/8. time : 10:26
*/
public abstract class ToolBarActivity extends AppCompatActivity {
protected Activity activity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (null == activity) {
activity = getActivity();
}
initContentView();
ButterKnife.bind(activity);
initView();
initAction();
}
protected abstract Activity getActivity();
/**
* 获取页面ResID
*
* @return
*/
protected abstract int onContentView();
/**
* 初始化UI
*/
protected abstract void initView();
protected abstract void initAction();
/**
* 创建一个根视图
*
* @return
*/
private void initContentView() {
/* 直接创建一个帧布局,作为视图容器的父容器 */
LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout layout = new LinearLayout(activity);
layout.setOrientation(LinearLayout.VERTICAL);
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
layout.setLayoutParams(params);
setContentView(layout);
if (onToolbarResID() != 0) {
View view = inflater.inflate(onToolbarResID(), layout, false);
layout.addView(view);
}
if (onContentView() != 0) {
View view = inflater.inflate(onContentView(), layout, false);
layout.addView(view);
}
}
/**
* 获取toolBarResID
*
* @return
*/
protected abstract int onToolbarResID();
}
3、继承BaseToobarActivity
public class MapActivity extends CustomBaseActivity implements OnMarkerClickListener{
@Bind(R.id.bmapView)
MapView mMapView;
@Override
protected Activity getActivity() {
return this;
}
@Override
protected int onContentView() {
return R.layout.activity_map;
}
@Override
protected void initView() {
BaiduMap mBaiduMap = mMapView.getMap();
// //普通地图
// mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
// 卫星地图
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
//设置地图的缩放级别.
MapStatusUpdateFactory.zoomTo(15.0f);
// //空白地图,
// 基础地图瓦片将不会被渲染。在地图类型中设置为NONE,将不会使用流量下载基础地图瓦片图层。使用场景:与瓦片图层一起使用,节省流量,提升自定义瓦片图下载速度。
// mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NONE);
LatLng pt1 = new LatLng(39.93923, 116.357428);
LatLng pt2 = new LatLng(39.91923, 116.327428);
LatLng pt3 = new LatLng(39.99929, 116.347428);
LatLng pt4 = new LatLng(39.99923, 116.367428);
LatLng pt5 = new LatLng(39.91929, 116.387428);
List<LatLng> pts = new ArrayList<LatLng>();
pts.add(pt1);
pts.add(pt2);
pts.add(pt3);
pts.add(pt4);
pts.add(pt5);
// 构建用户绘制多边形的Option对象
OverlayOptions polygonOption = new PolygonOptions().points(pts).stroke(new Stroke(5, 0xAA00FF00)).fillColor(0xAAFFFF00);
// 在地图上添加多边形Option,用于显示
mBaiduMap.addOverlay(polygonOption);
mBaiduMap.setOnMarkerClickListener(new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker arg0) {
// TODO Auto-generated method stub
final LatLng latLng = arg0.getPosition();
Toast.makeText(getApplicationContext(), latLng.toString(), Toast.LENGTH_SHORT).show();
return true;
}
});
}
Marker marker = null;
OnMarkerClickListener listener = new OnMarkerClickListener() {
/**
* 地图 Marker 覆盖物点击事件监听函数
* @param marker 被点击的 marker
*/
@Override
public boolean onMarkerClick(Marker arg0) {
Toast.makeText(getApplicationContext(), "123", Toast.LENGTH_SHORT).show();
return false;
}
};
@Override
protected void initAction() {
}
@Override
protected int onToolbarResID() {
return R.layout.public_toolbar;
}
@Override
protected void onDestroy() {
super.onDestroy();
// 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
// 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
// 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
mMapView.onPause();
}
@Override
public boolean onMarkerClick(Marker arg0) {
Toast.makeText(getApplicationContext(), "123", Toast.LENGTH_SHORT).show();
return false;
}
}
- ToolBar控件的使用
- Toolbar的高级使用
- Android --Toolbar的使用
- ToolBar的使用
- android toolbar的使用
- ToolBar的使用
- toolbar的使用
- ToolBar的基本使用
- ToolBar的使用
- toolbar的使用
- ToolBar的简单使用
- ToolBar的使用
- Toolbar的使用.md
- ToolBar的使用
- Toolbar的使用总结
- ToolBar的基本使用
- Toolbar的使用详解
- ToolBar的使用
- cloudstack 添加物理主机可能错误总结
- 【湖南集训 4.7】yist
- Android-通过Java代码来实现属性动画
- hrbust 1426 集训队的晚饭【dp】
- 剑指offer-面试题17.合并两个排序的链表
- ToolBar的使用
- 学习c++之前需要准备什么?
- 虚幻4 Task的创建和执行
- Linux 下的DMA浅析
- mysql(二)——select显示、where、%、排序、limit、distinct、count、max等、删和改
- object 类 “equals” 方法与 “ == " 之间的差别
- LeetCode------Add Two Numbers
- orientdb做图数据库的脚本命令
- 剑指offer-面试题18.树的子结构