{"id":2632,"date":"2025-05-23T06:00:07","date_gmt":"2025-05-22T22:00:07","guid":{"rendered":"https:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/"},"modified":"2025-05-23T06:00:07","modified_gmt":"2025-05-22T22:00:07","slug":"android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2","status":"publish","type":"post","link":"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/","title":{"rendered":"android \u52a8\u6001\u58c1\u7eb8"},"content":{"rendered":"<div class=\"article_content clearfix\" id=\"article_content\">\n <link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/editerView\/kdoc_html_views-1a98987dfd.css\" rel=\"stylesheet\"\/>\n <link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/editerView\/ck_htmledit_views-704d5b9767.css\" rel=\"stylesheet\"\/>\n<div class=\"htmledit_views atom-one-dark\" id=\"content_views\">\n<div class=\"blogpost-body\" id=\"cnblogs_post_body\">\n<p>\n    <span style=\"font-size:16px;\"><br \/>\n     <strong><br \/>\n      \u8f6c\u81ea\u7f51\u7edc\u3002\u3002 \u00a0 \u00a0 \u00a0 \u00a0 \u6ca1\u6709\u627e\u5230\u539f\u4f5c\u8005\u3002\u3002\u3002<br \/>\n     <\/strong><br \/>\n    <\/span>\n   <\/p>\n<\/p>\n<p>\n    OPhone\u52a8\u6001\u58c1\u7eb8\u63a2\u7a76\n   <\/p>\n<p>\n    OPhone\u5e73\u53f0\u5f00\u53d1, 2010-08-06 14:50:47\n   <\/p>\n<p>\n    \u6807\u7b7e : \u52a8\u6001\u58c1\u7eb8 Live Wallpapers \u65f6\u95f4\u58c1\u7eb8 TimeWall\n   <\/p>\n<p>\n    \u968f\u7740\u4e09\u661fOscar\u7684\u4e0a\u5e02\uff0c\u6d41\u7545\u7684\u64cd\u4f5c\uff0c\u534e\u4e3d\u7684\u754c\u9762\uff0cOPhone 2.0\u7684\u4e0d\u4fd7\u8868\u73b0\u4e0d\u7981\u8ba9\u4eba\u773c\u524d\u4e00\u4eae\u3002\u4f5c\u4e3aOPhone 2.0\u4e00\u4e2a\u65b0\u7279\u6027\uff0c\u52a8\u6001\u58c1\u7eb8(Live Wallpapers)\u4e3a\u7528\u6237\u5e26\u6765\u4e86\u66f4\u70ab\u4f53\u9a8c\u3002\u672c\u6587\u4e3b\u8981\u901a\u8fc7\u4e00\u4e2a\u5b8c\u6574\u7684\u65f6\u95f4\u58c1\u7eb8\uff08TimeWall\uff09\u4e3a\u5927\u5bb6\u4ecb\u7ecd\u5982\u4f55\u5f00\u53d1 Live Wallpapers\u3002\u8fd8\u6ca1\u5f00\u53d1\u73af\u5883\uff1f\u8d76\u7d27\u53bb\u4e0b\u8f7dOPhone SDK 2.0\u5427\uff01\n   <\/p>\n<p>\n    <br \/>\n    1\u3001 Live Wallpapers\u662f\u4ec0\u4e48\uff1f<br \/>\n    <br \/>\n    \u5728oscar\u4e0a\u6709\u4e00\u4e2a\u52a8\u6001\u58c1\u7eb8\u53eb\u201c\u5929\u7a7a\u8349\u5730\u201d\uff0c\u7528\u8fc7\u4e00\u6bb5\u65f6\u95f4\uff0c\u53ef\u4ee5\u53d1\u73b0\uff0c\u968f\u7740\u65f6\u95f4\u7684\u53d8\u5316\uff0c\u58c1\u7eb8\u7684\u5929\u7a7a\u5c31\u4f1a\u7531\u84dd\u84dd\u9752\u5929\u53d8\u6210\u7e41\u661f\u6ee1\u5929\u3002\u770b\u770b\u6548\u679c\uff1a\n   <\/p>\n<p>\n    \u4e3a\u4ec0\u4e48\u58c1\u7eb8\u8fd8\u6709\u8fd9\u4e48\u795e\u5947\u7684\u53d8\u5316\uff0c\u8fd9\u4e2d\u95f4\u5230\u5e95\u662f\u4ec0\u4e48\u5728\u8d77\u4f5c\u7528\uff1f\u5176\u5b9e\uff0c\u4e00\u4e2aLive Wallpaper\u5c31\u662f\u4e00\u4e2aapk\uff01\u4e5f\u5c31\u662f\u8bf4\uff0c\u52a8\u6001\u58c1\u7eb8\u7684\u5b9e\u8d28\u662f\u4e00\u4e2aapk\u5728\u540e\u53f0\u4e0d\u65ad\u5730\u91cd\u7ed8\u58c1\u7eb8\uff0c\u6240\u4ee5\u6211\u4eec\u53ef\u4ee5\u8ba9\u5c0f\u8349\u957f\u9ad8\uff0c\u5c0f\u9e1f\u98de\u7fd4\u3002<\/p>\n<p>    \u6765\u770b\u4e00\u4e0b\u6211\u4eecTimeWall\u7684AndoridManifest.xml\uff1a<br \/>\n    <br \/>\n    view plaincopy to clipboardprint?<br \/>\n    <br \/>\n    &lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<br \/>\n    <br \/>\n    &lt;manifest xmlns:android=&#8221;http:\/\/schemas.android.com\/apk\/res\/android&#8221;<br \/>\n    <br \/>\n    package=&#8221;com.oms.LiveWall&#8221; android:versionCode=&#8221;1&#8243;<br \/>\n    <br \/>\n    android:versionName=&#8221;1.0&#8243;&gt;<br \/>\n    <br \/>\n    &lt;application android:icon=&#8221;@drawable\/icon&#8221; android:label=&#8221;@string\/app_name&#8221;&gt;<br \/>\n    <br \/>\n    &lt;service android:label=&#8221;@string\/app_name&#8221; android:name=&#8221;.TimeWall&#8221;<br \/>\n    <br \/>\n    android:permission=&#8221;android.permission.BIND_WALLPAPER&#8221;&gt;<br \/>\n    <br \/>\n    &lt;intent-filter&gt;<br \/>\n    <br \/>\n    &lt;action android:name=&#8221;android.service.wallpaper.WallpaperService&#8221; \/&gt;<br \/>\n    <br \/>\n    &lt;\/intent-filter&gt;<br \/>\n    <br \/>\n    &lt;meta-data android:name=&#8221;android.service.wallpaper&#8221;<br \/>\n    <br \/>\n    android:resource=&#8221;@xml\/alive_wall&#8221; \/&gt;<br \/>\n    <br \/>\n    &lt;\/service&gt;<br \/>\n    <br \/>\n    &lt;\/application&gt;<br \/>\n    <br \/>\n    &lt;uses-sdk android:minSdkVersion=&#8221;7&#8243; \/&gt;<br \/>\n    <br \/>\n    &lt;\/manifest&gt;<\/p>\n<p>    \u539f\u6765\u5982\u6b64\u7b80\u5355\uff0c\u52a8\u6001\u58c1\u7eb8\u4ec5\u4ec5\u6709\u4e00\u4e2aservice\u5c31\u591f\u4e86\u3002\u5176\u4e2d<br \/>\n    <br \/>\n    android:permission=&#8221;android.permission.BIND_WALLPAPER&#8221;<\/p>\n<p>    \u662f\u8ba9\u8be5service\u6709\u80fd\u8bbe\u7f6e\u4e3a\u58c1\u7eb8\u7684\u6743\u9650\uff0c\u6ca1\u6709\u7684\u8bdd\u8be5\u58c1\u7eb8\u53ea\u80fd\u88ab\u9884\u89c8\u3002<br \/>\n    <br \/>\n    &lt;uses-sdk android:minSdkVersion=&#8221;7&#8243; \/&gt;<\/p>\n<p>    \u544a\u8bc9\u6211\u4eec\uff0c\u5982\u679c\u4f60\u60f3\u5f00\u53d1\u4e00\u4e2alive wallpaper\uff0c\u5fc5\u987b\u662fOPhone 2.0\u6216\u8005\u66f4\u9ad8\u7684\u7248\u672c\u3002\u5f53\u7136\u8fd9\u4e5f\u9700\u8981\u624b\u673a\u786c\u4ef6\u7684\u652f\u6301\u3002<\/p>\n<p>    2\u3001\u600e\u6837\u5b9e\u73b0WallpaperService\uff1f<br \/>\n    <br \/>\n    WallpaperService\u4e0e\u5176\u4ed6\u7684service\u552f\u4e00\u7684\u4e0d\u540c\u5c31\u662f\uff0c\u4f60\u5fc5\u987b\u8981\u589e\u52a0\u4e00\u4e2a\u65b9\u6cd5onCreateEngine()\uff0c\u5b83\u4f1a\u8fd4\u56de\u4e00\u4e2aWallpaperService.Engine\uff0c\u8fd9\u4e2aengine\u624d\u662f\u8d1f\u8d23\u7ed8\u5236\u58c1\u7eb8\u4ee5\u53ca\u54cd\u5e94\u4e0e\u7528\u6237\u4ea4\u4e92\u4e8b\u4ef6\u7684\u6838\u5fc3\u90e8\u4ef6\u3002\u8fd9\u4e2aservice\u4ee3\u7801\u7ed3\u6784\u5982\u4e0b\uff1a<br \/>\n    <br \/>\n    view plaincopy to clipboardprint?<br \/>\n    <br \/>\n    public class TimeWall extends WallpaperService {<\/p>\n<p>    public Engine onCreateEngine() {<br \/>\n    <br \/>\n    return new TimeEngine();<br \/>\n    <br \/>\n    }<\/p>\n<p>    public class TimeEngine extends Engine {<br \/>\n    <br \/>\n    \/\/ &#8230;more code<br \/>\n    <br \/>\n    }<br \/>\n    <br \/>\n    }<\/p>\n<p>    \u7c7bTimeEngine\u624d\u662f\u5904\u7406\u58c1\u7eb8\u7684\u6838\u5fc3\u7c7b\uff0c\u6211\u4eec\u4f1a\u5728\u7c7bTimeEngine\u4e2d\u52a0\u4e0a\u81ea\u5df1\u7684\u903b\u8f91\u4ee5\u5b8c\u6210\u58c1\u7eb8\u7684\u7ed8\u5236\u3001\u53d8\u5316\u4ee5\u53ca\u9500\u6bc1\u3002Engine\u7684\u751f\u547d\u5468\u671f\u4e0e\u5927\u591a\u6570OPhone\u5e94\u7528\u7a0b\u5e8f\u7ec4\u4ef6\uff0c\u6bd4\u5982activity\u7c7b\u4f3c\uff0c\u90fd\u662f\u4eceonCreate()\u5f00\u59cb\uff0c\u5728\u9500\u6bc1\u65f6\u8c03\u7528onDestory()\u65b9\u6cd5\u3002\u4e0d\u540c\u7684\u662fWallpaperService\u4f1a\u63d0\u4f9b\u4e00\u4e2asurface\u7528\u6765\u7ed8\u5236\u58c1\u7eb8\uff0c\u6240\u4ee5\u5728\u751f\u547d\u5468\u671f\u4e2d\u591a\u4e00\u4e2aonSurfaceCreated\u4e0eonSurfaceDestroyed\u7684\u8fc7\u7a0b\u3002\u4e0b\u9762\u662f\u4e00\u4e2a\u6700\u7b80\u751f\u547d\u5468\u671f\uff1a<\/p>\n<p>    \u4e5f\u5c31\u662f\u8bf4\u53ea\u8981\u6211\u4eec\u5b9e\u73b0\u4e0a\u9762\u56db\u4e2a\u65b9\u6cd5\uff0c\u4e00\u4e2a\u57fa\u672c\u7684LiveWallpaper\u5c31\u53ef\u4ee5\u5b8c\u6210\u4e86\u3002\u8ba9\u6211\u4eec\u9010\u4e2a\u770b\u4e00\u4e0b\u8fd9\u51e0\u4e2a\u65b9\u6cd5\u7684\u5b9e\u73b0\u3002<br \/>\n    <br \/>\n    view plaincopy to clipboardprint?<br \/>\n    <br \/>\n    @Override<br \/>\n    <br \/>\n    public void onCreate(SurfaceHolder surfaceHolder) {<br \/>\n    <br \/>\n    super.onCreate(surfaceHolder);<br \/>\n    <br \/>\n    setTouchEventsEnabled(true);<br \/>\n    <br \/>\n    }<\/p>\n<p>    @Override<br \/>\n    <br \/>\n    public void onDestroy() {<br \/>\n    <br \/>\n    super.onDestroy();<br \/>\n    <br \/>\n    mHandler.removeMessages(DRAW);<br \/>\n    <br \/>\n    }<\/p>\n<p>    @Override<br \/>\n    <br \/>\n    public void onSurfaceCreated(SurfaceHolder holder) {<br \/>\n    <br \/>\n    super.onSurfaceCreated(holder);<br \/>\n    <br \/>\n    mHandler.sendEmptyMessage(DRAW);<br \/>\n    <br \/>\n    }<\/p>\n<p>    @Override<br \/>\n    <br \/>\n    public void onSurfaceDestroyed(SurfaceHolder holder) {<br \/>\n    <br \/>\n    super.onSurfaceDestroyed(holder);<br \/>\n    <br \/>\n    mHandler.removeMessages(DRAW);<br \/>\n    <br \/>\n    }<\/p>\n<p>    \u5728onCreate\u65b9\u6cd5\u91cc\uff0c\u6211\u4eec<br \/>\n    <br \/>\n    setTouchEventsEnabled(true);<\/p>\n<p>    \u4f5c\u7528\u662f\u4f7f\u58c1\u7eb8\u80fd\u54cd\u5e94touch event\uff0c\u9ed8\u8ba4\u662ffalse\u3002TimeWall\u4f1a\u5728\u7528\u6237\u70b9\u51fb\u5c4f\u5e55\u7684\u65f6\u5019\u753b\u4e00\u4e2a\u5341\u5b57\u67b6\uff0c\u6240\u4ee5\u6211\u4eec\u9700\u8981\u8bbe\u7f6e\u5176\u4e3atrue\u3002<\/p>\n<p>    \u53ef\u4ee5\u770b\u5230\u6211\u4eec\u5728\u8fd9\u56db\u4e2a\u65b9\u6cd5\u91cc\u9762\u505a\u7684\u4e8b\u60c5\u975e\u5e38\u7b80\u5355\uff0c\u5c31\u662f\u5728create\u65f6\u5019\u53d1\u4e00\u4e2amessage\uff0c\u6267\u884c\u753b\u9762\u7684\u7ed8\u5236\uff0c\u5728destory\u65f6remove\u8fd9\u4e2a\u6d88\u606f\u3002\u770b\u4e00\u4e0bmHandler\u7684\u4ee3\u7801\uff1a<\/p>\n<p>    view plaincopy to clipboardprint?<br \/>\n    <br \/>\n    private Handler mHandler = new Handler() {<br \/>\n    <br \/>\n    public void handleMessage(Message msg) {<br \/>\n    <br \/>\n    switch (msg.what) {<br \/>\n    <br \/>\n    case DRAW:<br \/>\n    <br \/>\n    drawWall();<br \/>\n    <br \/>\n    break;<br \/>\n    <br \/>\n    }<br \/>\n    <br \/>\n    }<br \/>\n    <br \/>\n    };<br \/>\n    <br \/>\n    \u65b9\u6cd5drawWall()\uff1a<\/p>\n<p>    view plaincopy to clipboardprint?<br \/>\n    <br \/>\n    private void drawWall() {<br \/>\n    <br \/>\n    SurfaceHolder holder = getSurfaceHolder();<br \/>\n    <br \/>\n    Canvas canvas = holder.lockCanvas();<br \/>\n    <br \/>\n    drawTime(canvas);<br \/>\n    <br \/>\n    drawCross(canvas);<br \/>\n    <br \/>\n    holder.unlockCanvasAndPost(canvas);<\/p>\n<p>    mHandler.removeMessages(DRAW);<br \/>\n    <br \/>\n    mHandler.sendEmptyMessageDelayed(DRAW, 50);<br \/>\n    <br \/>\n    }<\/p>\n<p>    \u4ece\u4e0a\u9762\u53ef\u4ee5\u770b\u51fa\uff0c\u52a8\u6001\u58c1\u7eb8\u5b9e\u9645\u4e0a\u5c31\u662f\u4e0d\u65ad\u5237\u65b0\u7684\u9759\u6001\u58c1\u7eb8\uff0c\u8d8a\u534e\u4e3d\u8d8a\u6d41\u7545\uff0cCPU\u5c31\u6d88\u8017\u8d8a\u5927\uff0c\u5bf9\u4e8e\u73b0\u5728\u7684\u672c\u6765\u7535\u91cf\u5c31\u4e0d\u600e\u4e48\u5730\u7684\u667a\u80fd\u673a\u6765\u8bf4\uff0c\u8017\u7535\u4e5f\u662f\u5f88\u53ef\u89c2\u7684\u3002\u4f46\u662f\u5076\u5c14\u5411\u670b\u53cb\u4eec\u70ab\u4e00\u4e0b\u8fd8\u662f\u7edd\u5bf9\u53ef\u884c\u7684\u3002drawTime()\u4e0edrawCross()\u7684\u5185\u5bb9\u53ef\u4ee5\u7531\u5bb6\u81ea\u5df1\u5b9e\u73b0\uff0c\u5728TimeWall\u91cc\uff0c\u5b83\u4eec\u6bd4\u8f83\u7b80\u5355\u3002drawTime()\u662f\u8ba1\u7b97\u4e0b\u4e00\u5904Time String\u5e94\u8be5\u79fb\u52a8\u5230\u7684\u5750\u6807\uff0c\u4ee5\u53ca\u753b\u51fa\u8fd9\u4e2aString\u3002drawCross()\u7684\u4f5c\u7528\u662f\u5728\u7528\u6237\u89e6\u53d1onTouchEvent\u65f6\u753b\u4e00\u4e2a\u5341\u5b57\u67b6\u3002\u56e0\u4e3aTimeWall\u6bd4\u8f83\u7b80\u5355\uff0c\u5982\u679c\u5927\u5bb6\u81ea\u5df1\u5b9e\u73b0\u7684\u753b\u56fe\u6bd4\u8f83\u590d\u6742\uff0c\u53ef\u4ee5\u53e6\u5916\u5f00\u542f\u4e00\u4e2a\u7ebf\u7a0b\u6765\u5237\u65b0UI\uff0c\u5426\u5219\u6709\u53ef\u80fd\u4e3b\u7ebf\u7a0b\u88ab\u963b\u585e\u6389\u3002\uff08\u4ee3\u7801\u89c1\u9644\u4ef6\uff09<\/p>\n<p>    \u770b\u770bTimeWall\u7684\u6548\u679c\uff1a\n   <\/p>\n<p>\n    <br \/>\n    \u9644\u4ef6\u4ee3\u7801\uff1a\n   <\/p>\n<p>\n    view plaincopy to clipboardprint?<br \/>\n    <br \/>\n    package com.OPhonesdn.timewall;<\/p>\n<p>    import java.text.SimpleDateFormat;<br \/>\n    <br \/>\n    import java.util.Date;<\/p>\n<p>    import android.graphics.Canvas;<br \/>\n    <br \/>\n    import android.graphics.Color;<br \/>\n    <br \/>\n    import android.graphics.Paint;<br \/>\n    <br \/>\n    import android.os.Handler;<br \/>\n    <br \/>\n    import android.os.Message;<br \/>\n    <br \/>\n    import android.service.wallpaper.WallpaperService;<br \/>\n    <br \/>\n    import android.view.MotionEvent;<br \/>\n    <br \/>\n    import android.view.SurfaceHolder;<\/p>\n<p>    public class TimeWall extends WallpaperService {<\/p>\n<p>    public Engine onCreateEngine() {<br \/>\n    <br \/>\n    return new TimeEngine();<br \/>\n    <br \/>\n    }<\/p>\n<p>    public class TimeEngine extends Engine {<\/p>\n<p>    private final float STEP_X = 2f;<br \/>\n    <br \/>\n    private final float STEP_Y = 7f;<br \/>\n    <br \/>\n    private final float SCOPE_LEFT = 10f;<br \/>\n    <br \/>\n    private final float SCOPE_RIGHT = 110f;<br \/>\n    <br \/>\n    private final float SCOPE_TOP = 250f;<br \/>\n    <br \/>\n    private final float SCOPE_BOTTOM = 600f;<br \/>\n    <br \/>\n    private final float RADIUS = 20f;<br \/>\n    <br \/>\n    private final int DIRECTION_1 = 1; \/\/ move to right top side<br \/>\n    <br \/>\n    private final int DIRECTION_2 = 2; \/\/ move to right bottom side<br \/>\n    <br \/>\n    private final int DIRECTION_3 = 3; \/\/ move to left bottom side<br \/>\n    <br \/>\n    private final int DIRECTION_4 = 4; \/\/ move to left top side<br \/>\n    <br \/>\n    private final int DRAW = 1;<br \/>\n    <br \/>\n    private float mTouchX = -1f;<br \/>\n    <br \/>\n    private float mTouchY = -1f;<br \/>\n    <br \/>\n    private float mLocationX = 0f;<br \/>\n    <br \/>\n    private float mLocationY = 400f;<br \/>\n    <br \/>\n    private int mDirection = 1;<\/p>\n<p>    private Paint mPaint = new Paint();<br \/>\n    <br \/>\n    private Handler mHandler = new Handler() {<br \/>\n    <br \/>\n    public void handleMessage(Message msg) {<br \/>\n    <br \/>\n    switch (msg.what) {<br \/>\n    <br \/>\n    case DRAW:<br \/>\n    <br \/>\n    drawWall();<br \/>\n    <br \/>\n    break;<br \/>\n    <br \/>\n    }<br \/>\n    <br \/>\n    }<br \/>\n    <br \/>\n    };<\/p>\n<p>    public TimeEngine() {<br \/>\n    <br \/>\n    mPaint.setColor(Color.RED);<br \/>\n    <br \/>\n    mPaint.setAntiAlias(true);<br \/>\n    <br \/>\n    mPaint.setStrokeWidth(4);<br \/>\n    <br \/>\n    mPaint.setStrokeCap(Paint.Cap.BUTT);<br \/>\n    <br \/>\n    mPaint.setStyle(Paint.Style.STROKE);<br \/>\n    <br \/>\n    mPaint.setTextSize(40);<br \/>\n    <br \/>\n    }<\/p>\n<p>    @Override<br \/>\n    <br \/>\n    public void onCreate(SurfaceHolder surfaceHolder) {<br \/>\n    <br \/>\n    super.onCreate(surfaceHolder);<br \/>\n    <br \/>\n    setTouchEventsEnabled(true);<br \/>\n    <br \/>\n    }<\/p>\n<p>    @Override<br \/>\n    <br \/>\n    public void onDestroy() {<br \/>\n    <br \/>\n    super.onDestroy();<br \/>\n    <br \/>\n    mHandler.removeMessages(DRAW);<br \/>\n    <br \/>\n    }<\/p>\n<p>    @Override<br \/>\n    <br \/>\n    public void onSurfaceCreated(SurfaceHolder holder) {<br \/>\n    <br \/>\n    super.onSurfaceCreated(holder);<br \/>\n    <br \/>\n    mHandler.sendEmptyMessage(DRAW);<br \/>\n    <br \/>\n    }<\/p>\n<p>    @Override<br \/>\n    <br \/>\n    public void onSurfaceDestroyed(SurfaceHolder holder) {<br \/>\n    <br \/>\n    super.onSurfaceDestroyed(holder);<br \/>\n    <br \/>\n    mHandler.removeMessages(DRAW);<br \/>\n    <br \/>\n    }<\/p>\n<p>    @Override<br \/>\n    <br \/>\n    public void onTouchEvent(MotionEvent event) {<br \/>\n    <br \/>\n    if (event.getAction() == MotionEvent.ACTION_MOVE<br \/>\n    <br \/>\n    || event.getAction() == MotionEvent.ACTION_DOWN) {<br \/>\n    <br \/>\n    mTouchX = event.getX();<br \/>\n    <br \/>\n    mTouchY = event.getY();<br \/>\n    <br \/>\n    } else {<br \/>\n    <br \/>\n    mTouchX = -1;<br \/>\n    <br \/>\n    mTouchY = -1;<br \/>\n    <br \/>\n    }<br \/>\n    <br \/>\n    super.onTouchEvent(event);<br \/>\n    <br \/>\n    }<\/p>\n<p>    private void drawWall() {<br \/>\n    <br \/>\n    SurfaceHolder holder = getSurfaceHolder();<br \/>\n    <br \/>\n    Canvas canvas = holder.lockCanvas();<br \/>\n    <br \/>\n    drawTime(canvas);<br \/>\n    <br \/>\n    drawCross(canvas);<br \/>\n    <br \/>\n    holder.unlockCanvasAndPost(canvas);<\/p>\n<p>    mHandler.removeMessages(DRAW);<br \/>\n    <br \/>\n    mHandler.sendEmptyMessageDelayed(DRAW, 50);<br \/>\n    <br \/>\n    }<\/p>\n<p>    private void drawTime(Canvas c) {<br \/>\n    <br \/>\n    Date date = new Date(System.currentTimeMillis());<br \/>\n    <br \/>\n    SimpleDateFormat sdf = new SimpleDateFormat(&#8220;yyyy-MM-dd HH:mm:ss&#8221;);<br \/>\n    <br \/>\n    String strDate = sdf.format(date);<br \/>\n    <br \/>\n    c.save();<br \/>\n    <br \/>\n    c.drawColor(0xff000000);<br \/>\n    <br \/>\n    c.drawText(strDate, mLocationX, mLocationY, mPaint);<br \/>\n    <br \/>\n    switch (mDirection) {<br \/>\n    <br \/>\n    case DIRECTION_1:<br \/>\n    <br \/>\n    mLocationX = mLocationX + STEP_X;<br \/>\n    <br \/>\n    mLocationY = mLocationY &#8211; STEP_Y;<br \/>\n    <br \/>\n    if (mLocationY &lt;= SCOPE_TOP) {<br \/>\n    <br \/>\n    mDirection = DIRECTION_2;<br \/>\n    <br \/>\n    }<br \/>\n    <br \/>\n    break;<br \/>\n    <br \/>\n    case DIRECTION_2:<br \/>\n    <br \/>\n    mLocationX = mLocationX + STEP_X;<br \/>\n    <br \/>\n    mLocationY = mLocationY + STEP_Y;<br \/>\n    <br \/>\n    if (mLocationX &gt;= SCOPE_RIGHT) {<br \/>\n    <br \/>\n    mDirection = DIRECTION_3;<br \/>\n    <br \/>\n    }<br \/>\n    <br \/>\n    break;<br \/>\n    <br \/>\n    case DIRECTION_3:<br \/>\n    <br \/>\n    mLocationX = mLocationX &#8211; STEP_X;<br \/>\n    <br \/>\n    mLocationY = mLocationY + STEP_Y;<br \/>\n    <br \/>\n    if (mLocationY &gt;= SCOPE_BOTTOM) {<br \/>\n    <br \/>\n    mDirection = DIRECTION_4;<br \/>\n    <br \/>\n    }<br \/>\n    <br \/>\n    break;<br \/>\n    <br \/>\n    case DIRECTION_4:<br \/>\n    <br \/>\n    mLocationX = mLocationX &#8211; STEP_X;<br \/>\n    <br \/>\n    mLocationY = mLocationY &#8211; STEP_Y;<br \/>\n    <br \/>\n    if (mLocationX &lt;= SCOPE_LEFT) {<br \/>\n    <br \/>\n    mDirection = DIRECTION_1;<br \/>\n    <br \/>\n    }<br \/>\n    <br \/>\n    break;<br \/>\n    <br \/>\n    }<br \/>\n    <br \/>\n    c.restore();<br \/>\n    <br \/>\n    }<\/p>\n<p>    private void drawCross(Canvas c) {<br \/>\n    <br \/>\n    if (mTouchX &gt;= 0 &amp;&amp; mTouchY &gt;= 0) {<br \/>\n    <br \/>\n    c.drawLine(mTouchX &#8211; RADIUS, mTouchY, mTouchX + RADIUS,<br \/>\n    <br \/>\n    mTouchY, mPaint);<br \/>\n    <br \/>\n    c.drawLine(mTouchX, mTouchY &#8211; RADIUS, mTouchX,<br \/>\n    <br \/>\n    mTouchY + RADIUS, mPaint);<br \/>\n    <br \/>\n    }<br \/>\n    <br \/>\n    }<br \/>\n    <br \/>\n    }<br \/>\n    <br \/>\n    }\n   <\/p>\n<\/p><\/div>\n<p>\n   \u8f6c\u8f7d\u4e8e:https:\/\/www.cnblogs.com\/zhenbeiju\/archive\/2012\/01\/07\/2316004.html\n  <\/p>\n<\/p><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u8f6c\u81ea\u7f51\u7edc\u3002\u3002 \u00a0 \u00a0 \u00a0 \u00a0 \u6ca1\u6709\u627e\u5230\u539f\u4f5c\u8005\u3002\u3002\u3002 OPhone\u52a8\u6001\u58c1\u7eb8\u63a2\u7a76 OPhone\u5e73\u53f0\u5f00\u53d1, 2010 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":215,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-2632","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-8"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>android \u52a8\u6001\u58c1\u7eb8 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-\u52a8\u6001\u58c1\u7eb8-2\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"android \u52a8\u6001\u58c1\u7eb8 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\" \/>\n<meta property=\"og:description\" content=\"\u8f6c\u81ea\u7f51\u7edc\u3002\u3002 \u00a0 \u00a0 \u00a0 \u00a0 \u6ca1\u6709\u627e\u5230\u539f\u4f5c\u8005\u3002\u3002\u3002 OPhone\u52a8\u6001\u58c1\u7eb8\u63a2\u7a76 OPhone\u5e73\u53f0\u5f00\u53d1, 2010 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-\u52a8\u6001\u58c1\u7eb8-2\/\" \/>\n<meta property=\"og:site_name\" content=\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-22T22:00:07+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"260\" \/>\n\t<meta property=\"og:image:height\" content=\"180\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin@wunen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin@wunen\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/\"},\"author\":{\"name\":\"admin@wunen\",\"@id\":\"http:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8\"},\"headline\":\"android \u52a8\u6001\u58c1\u7eb8\",\"datePublished\":\"2025-05-22T22:00:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/\"},\"wordCount\":774,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/www.wunen.com\/#organization\"},\"image\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"articleSection\":[\"\u52a8\u6001\u58c1\u7eb8\"],\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/\",\"url\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/\",\"name\":\"android \u52a8\u6001\u58c1\u7eb8 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"isPartOf\":{\"@id\":\"http:\/\/www.wunen.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/#primaryimage\"},\"image\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"datePublished\":\"2025-05-22T22:00:07+00:00\",\"breadcrumb\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/#primaryimage\",\"url\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"contentUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"width\":260,\"height\":180},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"http:\/\/www.wunen.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"android \u52a8\u6001\u58c1\u7eb8\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.wunen.com\/#website\",\"url\":\"http:\/\/www.wunen.com\/\",\"name\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"description\":\"\u8f6f\u4ef6\u8d44\u8baf\u6765\u7269\u5ae9\",\"publisher\":{\"@id\":\"http:\/\/www.wunen.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.wunen.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/www.wunen.com\/#organization\",\"name\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"url\":\"http:\/\/www.wunen.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"http:\/\/www.wunen.com\/#\/schema\/logo\/image\/\",\"url\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png\",\"contentUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png\",\"width\":1024,\"height\":1024,\"caption\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\"},\"image\":{\"@id\":\"http:\/\/www.wunen.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"http:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8\",\"name\":\"admin@wunen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"http:\/\/www.wunen.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g\",\"caption\":\"admin@wunen\"},\"sameAs\":[\"http:\/\/www.wunen.com\"],\"url\":\"http:\/\/www.wunen.com\/index.php\/author\/adminwunen\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"android \u52a8\u6001\u58c1\u7eb8 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-\u52a8\u6001\u58c1\u7eb8-2\/","og_locale":"zh_CN","og_type":"article","og_title":"android \u52a8\u6001\u58c1\u7eb8 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","og_description":"\u8f6c\u81ea\u7f51\u7edc\u3002\u3002 \u00a0 \u00a0 \u00a0 \u00a0 \u6ca1\u6709\u627e\u5230\u539f\u4f5c\u8005\u3002\u3002\u3002 OPhone\u52a8\u6001\u58c1\u7eb8\u63a2\u7a76 OPhone\u5e73\u53f0\u5f00\u53d1, 2010 [&hellip;]","og_url":"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-\u52a8\u6001\u58c1\u7eb8-2\/","og_site_name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","article_published_time":"2025-05-22T22:00:07+00:00","og_image":[{"width":260,"height":180,"url":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","type":"image\/jpeg"}],"author":"admin@wunen","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin@wunen","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/#article","isPartOf":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/"},"author":{"name":"admin@wunen","@id":"http:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8"},"headline":"android \u52a8\u6001\u58c1\u7eb8","datePublished":"2025-05-22T22:00:07+00:00","mainEntityOfPage":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/"},"wordCount":774,"commentCount":0,"publisher":{"@id":"http:\/\/www.wunen.com\/#organization"},"image":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/#primaryimage"},"thumbnailUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","articleSection":["\u52a8\u6001\u58c1\u7eb8"],"inLanguage":"zh-Hans","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/","url":"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/","name":"android \u52a8\u6001\u58c1\u7eb8 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","isPartOf":{"@id":"http:\/\/www.wunen.com\/#website"},"primaryImageOfPage":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/#primaryimage"},"image":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/#primaryimage"},"thumbnailUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","datePublished":"2025-05-22T22:00:07+00:00","breadcrumb":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/"]}]},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/#primaryimage","url":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","contentUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","width":260,"height":180},{"@type":"BreadcrumbList","@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/23\/android-%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"http:\/\/www.wunen.com\/"},{"@type":"ListItem","position":2,"name":"android \u52a8\u6001\u58c1\u7eb8"}]},{"@type":"WebSite","@id":"http:\/\/www.wunen.com\/#website","url":"http:\/\/www.wunen.com\/","name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","description":"\u8f6f\u4ef6\u8d44\u8baf\u6765\u7269\u5ae9","publisher":{"@id":"http:\/\/www.wunen.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.wunen.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":"Organization","@id":"http:\/\/www.wunen.com\/#organization","name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","url":"http:\/\/www.wunen.com\/","logo":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"http:\/\/www.wunen.com\/#\/schema\/logo\/image\/","url":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png","contentUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png","width":1024,"height":1024,"caption":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51"},"image":{"@id":"http:\/\/www.wunen.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"http:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8","name":"admin@wunen","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"http:\/\/www.wunen.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g","caption":"admin@wunen"},"sameAs":["http:\/\/www.wunen.com"],"url":"http:\/\/www.wunen.com\/index.php\/author\/adminwunen\/"}]}},"_links":{"self":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts\/2632","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/comments?post=2632"}],"version-history":[{"count":0,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts\/2632\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/media\/215"}],"wp:attachment":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/media?parent=2632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/categories?post=2632"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/tags?post=2632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}