Android高德地圖開發(fā)(二)地圖基礎(chǔ)

一、概述

在第一章中我們搭建了高德地圖的開發(fā)環(huán)境御吞,接下來我們就來了解一下地圖的定位等基礎(chǔ)操作,Go漓藕。

二陶珠、本章內(nèi)容

--- 顯示定位藍(lán)點(diǎn)
--- 切換地圖圖層
--- 使用自帶的離線地圖UI
1.權(quán)限動(dòng)態(tài)申請(qǐng)
高德地圖在使用的時(shí)候需要用到一定的權(quán)限(主要在6.0以后必須申請(qǐng)權(quán)限),這里我就將要是用的權(quán)限全部動(dòng)態(tài)申請(qǐng)一次享钞,方便后面的操作
private String[] mPermissions = {
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.READ_PHONE_STATE
};//要申請(qǐng)的權(quán)限

開始申請(qǐng)權(quán)限

        //判斷當(dāng)前Android版本是否大于等于6.0
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            //需要申請(qǐng)權(quán)限,為了方便揍诽,這里我直接將地圖需要的權(quán)限都申請(qǐng)了,已啟動(dòng)就會(huì)提示授權(quán)全部權(quán)限
            //大家再用的時(shí)候還是需要權(quán)限的時(shí)候再去申請(qǐng),這樣用戶體驗(yàn)會(huì)好一點(diǎn)
            if (checkPermission(Manifest.permission.ACCESS_FINE_LOCATION)
                    && checkPermission(Manifest.permission.ACCESS_COARSE_LOCATION)
                    && checkPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
                    && checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
                    && checkPermission(Manifest.permission.READ_PHONE_STATE)) {
                //已經(jīng)申請(qǐng)直接調(diào)用
                myExecute();
            } else {
                //開啟系統(tǒng)權(quán)限申請(qǐng)
                requestPermissions(mPermissions, M_PERMISSION_CODE);
            }

        } else {
            myExecute();//權(quán)限申請(qǐng)完成需要執(zhí)行的操作
        }

重寫onRequestPermissionsResult方法栗竖,來監(jiān)聽權(quán)限申請(qǐng)頁(yè)面返回的結(jié)果

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        switch (requestCode) {
            case M_PERMISSION_CODE:

                if (grantResults.length > 0
                        && grantResults[0] == PackageManager.PERMISSION_GRANTED
                        && grantResults[1] == PackageManager.PERMISSION_GRANTED
                        && grantResults[2] == PackageManager.PERMISSION_GRANTED
                        && grantResults[3] == PackageManager.PERMISSION_GRANTED
                        && grantResults[4] == PackageManager.PERMISSION_GRANTED) {
                    //權(quán)限申請(qǐng)成功
                    myExecute();
                } else {
                    //未得到申請(qǐng)權(quán)限的授權(quán)暑脆,不能執(zhí)行
                    Toast.makeText(this, "請(qǐng)通過全部權(quán)限申請(qǐng),否則無法執(zhí)行下一步操作", Toast.LENGTH_SHORT).show();
                }
                break;
        }
    }

2.搞定權(quán)限后狐肢,開始開啟定位添吗。首先創(chuàng)建一個(gè)定位樣式的實(shí)例

MyLocationStyle mls = new MyLocationStyle();

設(shè)置定位模式
只定位一次,顯示當(dāng)前的位置,顯示藍(lán)點(diǎn)份名,藍(lán)點(diǎn)不移動(dòng)碟联,手機(jī)轉(zhuǎn)動(dòng)藍(lán)點(diǎn)也不改變方向,視角不會(huì)移動(dòng)到屏幕中間
mls.myLocationType(MyLocationStyle.LOCATION_TYPE_SHOW);

            //定位一次僵腺,視角移動(dòng)到地圖中心點(diǎn)
            mls.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATE);

            //連續(xù)定位玄帕、視角移動(dòng)到地圖中心點(diǎn),定位藍(lán)點(diǎn)跟隨設(shè)備移動(dòng)想邦。(1秒1次定位)
            mls.myLocationType(MyLocationStyle.LOCATION_TYPE_FOLLOW);

            //連續(xù)定位裤纹、視角移動(dòng)到地圖中心點(diǎn),地圖依照設(shè)備方向旋轉(zhuǎn),定位點(diǎn)會(huì)跟隨設(shè)備移動(dòng)(1秒1次定位)
            mls.myLocationType(MyLocationStyle.LOCATION_TYPE_MAP_ROTATE);

            //連續(xù)定位鹰椒、視角移動(dòng)到地圖中心點(diǎn)锡移,定位點(diǎn)依照設(shè)備方向旋轉(zhuǎn),并且會(huì)跟隨設(shè)備移動(dòng)(1秒1次定位)默認(rèn)執(zhí)行此種模式漆际。
            mls.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);

以下三種模式從SDK5.1.0版本開始提供

            //連續(xù)定位淆珊、藍(lán)點(diǎn)不會(huì)移動(dòng)到地圖中心點(diǎn),定位點(diǎn)依照設(shè)備方向旋轉(zhuǎn)奸汇,并且藍(lán)點(diǎn)會(huì)跟隨設(shè)備移動(dòng)
            mls.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER);

            //連續(xù)定位施符、藍(lán)點(diǎn)不會(huì)移動(dòng)到地圖中心點(diǎn),并且藍(lán)點(diǎn)會(huì)跟隨設(shè)備移動(dòng)
            mls.myLocationType(MyLocationStyle.LOCATION_TYPE_FOLLOW_NO_CENTER);

            //連續(xù)定位擂找、藍(lán)點(diǎn)不會(huì)移動(dòng)到地圖中心點(diǎn)戳吝,地圖依照設(shè)備方向旋轉(zhuǎn),并且藍(lán)點(diǎn)會(huì)跟隨設(shè)備移動(dòng)
            mls.myLocationType(MyLocationStyle.LOCATION_TYPE_MAP_ROTATE_NO_CENTER);

設(shè)置地圖定位的基礎(chǔ)樣式
//高德地圖自動(dòng)定位時(shí)間間隔
mls.interval(2000);
//設(shè)置自定義的定位圖標(biāo)
mls.myLocationIcon(BitmapDescriptorFactory.fromBitmap(locationBm));
//設(shè)置自定的圖標(biāo)錨點(diǎn),這里的參數(shù)含義贯涎,是指描點(diǎn)在圖標(biāo)位置的百分比听哭,
// 例(0.5f,0.4f)意思是以圖標(biāo)寬度的50%,高度的40%為中心點(diǎn)塘雳,旋轉(zhuǎn)
mls.anchor(0.5f, 0.5f);
//設(shè)置精度圈邊框顏色陆盘,不想要設(shè)置為透明色即可
mls.strokeColor(Color.GREEN);
//設(shè)置精度圈邊框?qū)挾?br> mls.strokeWidth(10);
//設(shè)置精度圈填充顏色,不想要直接設(shè)置為透明色即可
mls.radiusFillColor(Color.TRANSPARENT);
//為Map添加定位
aMap.setMyLocationStyle(mls);
//是否顯示定位按鈕败明,可以不加
aMap.getUiSettings().setMyLocationButtonEnabled(true);
//開啟定位是否顯示藍(lán)點(diǎn)隘马,設(shè)置false則不會(huì)顯示藍(lán)點(diǎn)不會(huì)定位
aMap.setMyLocationEnabled(true);
//顯示3D建筑
aMap.showBuildings(true);
//顯示底圖文字
aMap.showMapText(true);
//顯示室內(nèi)地圖
aMap.showIndoorMap(true);
//顯示實(shí)時(shí)的交通路況
aMap.setTrafficEnabled(true);

3.同時(shí)我們可以監(jiān)聽定位數(shù)據(jù)

    aMap.setOnMyLocationChangeListener(new AMap.OnMyLocationChangeListener() {
        @Override
        public void onMyLocationChange(Location location) {

            //這里獲取經(jīng)緯度等定位信息,注意這里回調(diào)跟你設(shè)置的定位頻率是一樣的妻顶,并且一直調(diào)用
            double lat = location.getLatitude();
            double lng = location.getLongitude();

            Log.e(TAG, "onMyLocationChange: lat=" + lat + "|lng=" + lng);
        }
    });

4.切換地圖圖層

        //正常地圖
        //AMap.MAP_TYPE_NORMAL:
        //衛(wèi)星地圖
        //AMap.MAP_TYPE_SATELLITE:
        //夜間地圖
        //AMap.MAP_TYPE_NIGHT:
        //導(dǎo)航地圖
        //AMap.MAP_TYPE_NAVI:
        //公交地圖祟霍,不太常用
        //AMap.MAP_TYPE_BUS:
        aMap.setMapType(AMap.MAP_TYPE_BUS:);
  1. 啟用自帶的離線地圖UI
    startActivity(new Intent(this.getApplicationContext(),com.amap.api.maps.offlinemap.OfflineMapActivity.class));

好了以上就是高德地圖的基礎(chǔ)操作。
代碼:

public class MainActivity extends AppCompatActivity{

    private final String TAG = this.getClass().getName();
    @BindView(R.id.normal_btn)
    Button normalBtn;
    @BindView(R.id.sate_btn)
    Button sateBtn;
    @BindView(R.id.night_btn)
    Button nightBtn;
    @BindView(R.id.navi_btn)
    Button naviBtn;
    @BindView(R.id.bus_btn)
    Button busBtn;
    @BindView(R.id.map_view)
    MapView mapView;
    @BindView(R.id.traffic_check)
    CheckBox trafficCheck;
    @BindView(R.id.off_line_btn)
    Button offLineBtn;
    private AMap aMap;
    private MyLocationStyle mls;
    private String[] mPermissions = {
            Manifest.permission.ACCESS_FINE_LOCATION,
            Manifest.permission.ACCESS_COARSE_LOCATION,
            Manifest.permission.WRITE_EXTERNAL_STORAGE,
            Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.READ_PHONE_STATE
    };
    private static final int M_PERMISSION_CODE = 1001;
    private Bitmap locationBm;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ButterKnife.bind(this);

        mapView.onCreate(savedInstanceState);// 此方法必須重寫
        initData();
    }

    private void initData() {

        aMap = mapView.getMap();
        locationBm = BitmapFactory.decodeResource(getResources(), R.drawable.location);

        //判斷當(dāng)前Android版本是否大于等于6.0
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            //需要申請(qǐng)權(quán)限,為了方便盈包,這里我直接將地圖需要的權(quán)限都申請(qǐng)了,已啟動(dòng)就會(huì)提示授權(quán)全部權(quán)限
            //大家再用的時(shí)候還是需要權(quán)限的時(shí)候再去申請(qǐng)沸呐,這樣用戶體驗(yàn)會(huì)好一點(diǎn)
            if (checkPermission(Manifest.permission.ACCESS_FINE_LOCATION)
                    && checkPermission(Manifest.permission.ACCESS_COARSE_LOCATION)
                    && checkPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
                    && checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
                    && checkPermission(Manifest.permission.READ_PHONE_STATE)) {
                //已經(jīng)申請(qǐng)直接調(diào)用
                myExecute();
            } else {
                //開啟系統(tǒng)權(quán)限申請(qǐng)
                requestPermissions(mPermissions, M_PERMISSION_CODE);
            }

        } else {
            myExecute();
        }

        aMap.setOnMyLocationChangeListener(new AMap.OnMyLocationChangeListener() {
            @Override
            public void onMyLocationChange(Location location) {

                //這里獲取經(jīng)緯度等定位信息,注意這里回調(diào)跟你設(shè)置的定位頻率是一樣的呢燥,并且一直調(diào)用
                double lat = location.getLatitude();
                double lng = location.getLongitude();

                Log.e(TAG, "onMyLocationChange: lat=" + lat + "|lng=" + lng);
            }
        });

        trafficCheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {
                    aMap.setTrafficEnabled(true);
                } else {
                    aMap.setTrafficEnabled(false);
                }
            }
        });

    }

    @Override
    protected void onStart() {
        super.onStart();
    }

    @Override
    protected void onResume() {
        super.onResume();
        mapView.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        mapView.onPause();
    }

    @Override
    protected void onStop() {
        super.onStop();
    }

    @Override
    protected void onDestroy() {

        mapView.onDestroy();
        super.onDestroy();
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        mapView.onSaveInstanceState(outState);
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        switch (requestCode) {
            case M_PERMISSION_CODE:

                if (grantResults.length > 0
                        && grantResults[0] == PackageManager.PERMISSION_GRANTED
                        && grantResults[1] == PackageManager.PERMISSION_GRANTED
                        && grantResults[2] == PackageManager.PERMISSION_GRANTED
                        && grantResults[3] == PackageManager.PERMISSION_GRANTED
                        && grantResults[4] == PackageManager.PERMISSION_GRANTED) {
                    //權(quán)限申請(qǐng)成功
                    myExecute();
                } else {
                    //未得到申請(qǐng)權(quán)限的授權(quán)崭添,不能執(zhí)行
                    Toast.makeText(this, "請(qǐng)通過全部權(quán)限申請(qǐng),否則無法執(zhí)行下一步操作", Toast.LENGTH_SHORT).show();
                }
                break;
        }
    }

    /**
     * 執(zhí)行地圖顯示操作
     */
    private void myExecute() {

//        startBluePoint();

        showIndoorMap();

    }

    /**
     * 開啟地圖藍(lán)點(diǎn)
     */
    private void startBluePoint() {

        mls = new MyLocationStyle();

        int style = 4;
        //設(shè)置藍(lán)點(diǎn)模式叛氨,修改上面的style0-7呼渣,就可以看到不同的模式
        setLocationStyle(mls, style);
        //高德地圖自動(dòng)定位時(shí)間間隔
        mls.interval(2000);

        //設(shè)置自定義的定位圖標(biāo)
        mls.myLocationIcon(BitmapDescriptorFactory.fromBitmap(locationBm));
        //設(shè)置自定的圖標(biāo)錨點(diǎn),這里的參數(shù)含義,是指描點(diǎn)在圖標(biāo)位置的百分比寞埠,
        // 例(0.5f,0.4f)意思是以圖標(biāo)寬度的50%屁置,高度的40%為中心點(diǎn),旋轉(zhuǎn)
        mls.anchor(0.5f, 0.5f);

        //設(shè)置精度圈邊框顏色仁连,不想要設(shè)置為透明色即可
        mls.strokeColor(Color.GREEN);
        //設(shè)置精度圈邊框?qū)挾?        mls.strokeWidth(10);
        //設(shè)置精度圈填充顏色蓝角,不想要直接設(shè)置為透明色即可
        mls.radiusFillColor(Color.TRANSPARENT);

        //為Map添加定位
        aMap.setMyLocationStyle(mls);
        //是否顯示定位按鈕阱穗,可以不加
        aMap.getUiSettings().setMyLocationButtonEnabled(true);
        //開啟定位是否顯示藍(lán)點(diǎn),設(shè)置false則不會(huì)顯示藍(lán)點(diǎn)不會(huì)定位
        aMap.setMyLocationEnabled(true);

        //顯示3D建筑
        aMap.showBuildings(true);
        //顯示底圖文字
        aMap.showMapText(true);
    }

    /**
     * 顯示室內(nèi)地圖,注意只有在地圖在放縮級(jí)別>=17之間才看得到室內(nèi)地圖
     * 默認(rèn)是不顯示室內(nèi)地圖
     */
    private void showIndoorMap() {
        aMap.showIndoorMap(true);
    }

    /**
     * 地圖圖層切換
     */
    private void changeMapLayer(int layer) {

        //正常地圖
        //AMap.MAP_TYPE_NORMAL:
        //衛(wèi)星地圖
        //AMap.MAP_TYPE_SATELLITE:
        //夜間地圖
        //AMap.MAP_TYPE_NIGHT:
        //導(dǎo)航地圖,不太常用
        //AMap.MAP_TYPE_NAVI:
        //公交地圖使鹅,不太常用
        //AMap.MAP_TYPE_BUS:
        aMap.setMapType(layer);
    }


    /**
     * 檢查指定權(quán)限是否允許
     */
    private boolean checkPermission(String permission) {

        if (ActivityCompat.checkSelfPermission(this, permission) == PERMISSION_GRANTED) {
            return true;
        } else {
            return false;
        }
    }

    private void setLocationStyle(MyLocationStyle myLocationStyle, int locationStyle) {


        switch (locationStyle) {
            case 0:
                //只定位一次,顯示當(dāng)前的位置揪阶,顯示藍(lán)點(diǎn),藍(lán)點(diǎn)不移動(dòng)患朱,手機(jī)轉(zhuǎn)動(dòng)藍(lán)點(diǎn)也不改變方向鲁僚,視角不會(huì)移動(dòng)到屏幕中間
                mls.myLocationType(MyLocationStyle.LOCATION_TYPE_SHOW);
                break;
            case 1:
                //定位一次,視角移動(dòng)到地圖中心點(diǎn)
                mls.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATE);
                break;
            case 2:
                //連續(xù)定位裁厅、視角移動(dòng)到地圖中心點(diǎn)冰沙,定位藍(lán)點(diǎn)跟隨設(shè)備移動(dòng)。(1秒1次定位)
                mls.myLocationType(MyLocationStyle.LOCATION_TYPE_FOLLOW);
                break;
            case 3:
                //連續(xù)定位执虹、視角移動(dòng)到地圖中心點(diǎn)拓挥,地圖依照設(shè)備方向旋轉(zhuǎn),定位點(diǎn)會(huì)跟隨設(shè)備移動(dòng)(1秒1次定位)
                mls.myLocationType(MyLocationStyle.LOCATION_TYPE_MAP_ROTATE);
                break;
            case 4:
                //連續(xù)定位声畏、視角移動(dòng)到地圖中心點(diǎn),定位點(diǎn)依照設(shè)備方向旋轉(zhuǎn)姻成,并且會(huì)跟隨設(shè)備移動(dòng)(1秒1次定位)默認(rèn)執(zhí)行此種模式插龄。
                mls.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);
                break;
            /**
             * 以下三種模式從SDK5.1.0版本開始提供
             * */
            case 5:
                //連續(xù)定位、藍(lán)點(diǎn)不會(huì)移動(dòng)到地圖中心點(diǎn)科展,定位點(diǎn)依照設(shè)備方向旋轉(zhuǎn)均牢,并且藍(lán)點(diǎn)會(huì)跟隨設(shè)備移動(dòng)
                mls.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER);
                break;
            case 6:
                //連續(xù)定位、藍(lán)點(diǎn)不會(huì)移動(dòng)到地圖中心點(diǎn)才睹,并且藍(lán)點(diǎn)會(huì)跟隨設(shè)備移動(dòng)
                mls.myLocationType(MyLocationStyle.LOCATION_TYPE_FOLLOW_NO_CENTER);
                break;
            case 7:
                //連續(xù)定位徘跪、藍(lán)點(diǎn)不會(huì)移動(dòng)到地圖中心點(diǎn),地圖依照設(shè)備方向旋轉(zhuǎn)琅攘,并且藍(lán)點(diǎn)會(huì)跟隨設(shè)備移動(dòng)
                mls.myLocationType(MyLocationStyle.LOCATION_TYPE_MAP_ROTATE_NO_CENTER);
                break;
            default:
                break;
        }

    }

    @OnClick({R.id.normal_btn, R.id.sate_btn, R.id.night_btn, R.id.navi_btn, R.id.bus_btn, R.id.off_line_btn})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.normal_btn:
                changeMapLayer(AMap.MAP_TYPE_NORMAL);
                break;
            case R.id.sate_btn:
                changeMapLayer(AMap.MAP_TYPE_SATELLITE);
                break;
            case R.id.night_btn:
                changeMapLayer(AMap.MAP_TYPE_NIGHT);
                break;
            case R.id.navi_btn:
                changeMapLayer(AMap.MAP_TYPE_NAVI);
                break;
            case R.id.bus_btn:
                changeMapLayer(AMap.MAP_TYPE_BUS);
                break;
            case R.id.off_line_btn:
                startActivity(new Intent(this.getApplicationContext(),
                        com.amap.api.maps.offlinemap.OfflineMapActivity.class));
                break;
        }
    }

}

上面的代碼在實(shí)際開發(fā)中垮庐,不建議大家這樣寫,有些啰嗦坞琴,我這樣寫僅僅是為了方便查看

三哨查、總結(jié)
實(shí)際上在高德地圖開發(fā)中SDK已經(jīng)為我們做了很好封裝,用起來已經(jīng)很方便了剧辐。后面還會(huì)繼續(xù)學(xué)習(xí)高德地圖的其他操作寒亥,喜歡的小伙伴可以繼續(xù)關(guān)注。上面用到了第三方庫(kù)的ButterKnife庫(kù)荧关,如有不明白的小伙伴請(qǐng)自行百度溉奕、Google。初次嘗試寫博客忍啤,不喜勿噴加勤,謝謝。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市胸竞,隨后出現(xiàn)的幾起案子欺嗤,更是在濱河造成了極大的恐慌,老刑警劉巖卫枝,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件煎饼,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡校赤,警方通過查閱死者的電腦和手機(jī)吆玖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來马篮,“玉大人沾乘,你說我怎么就攤上這事』氩猓” “怎么了翅阵?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)迁央。 經(jīng)常有香客問我掷匠,道長(zhǎng),這世上最難降的妖魔是什么岖圈? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任讹语,我火速辦了婚禮,結(jié)果婚禮上蜂科,老公的妹妹穿的比我還像新娘顽决。我一直安慰自己,他們只是感情好导匣,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布才菠。 她就那樣靜靜地躺著,像睡著了一般贡定。 火紅的嫁衣襯著肌膚如雪鸠儿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天厕氨,我揣著相機(jī)與錄音进每,去河邊找鬼。 笑死命斧,一個(gè)胖子當(dāng)著我的面吹牛田晚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播国葬,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼贤徒,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼芹壕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起接奈,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤踢涌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后序宦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體睁壁,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年互捌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了潘明。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秕噪,死狀恐怖钳降,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情腌巾,我是刑警寧澤遂填,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站澈蝙,受9級(jí)特大地震影響吓坚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜碉克,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一凌唬、第九天 我趴在偏房一處隱蔽的房頂上張望并齐。 院中可真熱鬧漏麦,春花似錦、人聲如沸况褪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)测垛。三九已至捏膨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間食侮,已是汗流浹背号涯。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锯七,地道東北人链快。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像眉尸,于是被迫代替她去往敵國(guó)和親域蜗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子巨双,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 有些人的痛苦,雖然不是沉郁得深不見底霉祸,卻充斥在生活的每一條縫隙之中筑累。 一閑下來,痛苦總會(huì)如期而至丝蹭。 所以經(jīng)陈冢看到他...
    Miss_soul閱讀 293評(píng)論 0 0
  • 引言:在提倡科學(xué)育兒的時(shí)代巫橄,我們需要學(xué)會(huì)對(duì)一些傳統(tǒng)方法進(jìn)行質(zhì)疑淘邻。取其精華,去其糟粕湘换。而不是一味的拿來主義宾舅。 當(dāng)孩子...
    曉達(dá)親子情商療愈閱讀 379評(píng)論 3 6
  • 寫過很多文字,多數(shù)并不被看好彩倚,被人喜歡最多的該是這句筹我,“當(dāng)我們擁抱著對(duì)方時(shí)是無法看見彼此的臉的,我們無法知道對(duì)方是...
    林小喂閱讀 318評(píng)論 0 1
  • 我是阿波帆离,第21天打卡 今日作業(yè):10號(hào) 恭喜你堅(jiān)持打卡21天蔬蕊,寫下你的學(xué)習(xí)心得和體會(huì) 實(shí)操第21天心得 嘉嘉老師...
    阿波_8e72閱讀 215評(píng)論 0 1
  • 我們都知道喜歡一個(gè)人,總是想表現(xiàn)出自己最好的一面哥谷,尤其當(dāng)她╱他從身邊走過的時(shí)候岸夯,忍不住的想表達(dá)自己。
    rir_2142閱讀 37評(píng)論 0 0