diff --git a/app/src/main/java/com/tmall/wireless/virtualviewdemo/DemoListActivity.java b/app/src/main/java/com/tmall/wireless/virtualviewdemo/DemoListActivity.java index a379a59..81f68e7 100644 --- a/app/src/main/java/com/tmall/wireless/virtualviewdemo/DemoListActivity.java +++ b/app/src/main/java/com/tmall/wireless/virtualviewdemo/DemoListActivity.java @@ -24,11 +24,6 @@ package com.tmall.wireless.virtualviewdemo; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import android.app.ListActivity; import android.content.ComponentName; import android.content.Intent; @@ -39,8 +34,14 @@ import android.widget.ListView; import android.widget.SimpleAdapter; +import com.tmall.wireless.virtualviewdemo.preview.IPDialog; import com.tmall.wireless.virtualviewdemo.preview.PreviewListActivity; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * Created by longerian on 2017/7/24. * @@ -87,7 +88,15 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { @Override protected void onListItemClick(ListView l, View v, int position, long id) { - Map item = (Map)l.getItemAtPosition(position); + if (position < 4) { + startActivity(l, position); + } else { + new IPDialog(this).setOnOKClickListener(view -> startActivity(l, position)).show(); + } + } + + private void startActivity(ListView l, int position) { + Map item = (Map) l.getItemAtPosition(position); String className = item.get("class"); if (className != null) { Intent intent = new Intent(); diff --git a/app/src/main/java/com/tmall/wireless/virtualviewdemo/VirtualViewApplication.java b/app/src/main/java/com/tmall/wireless/virtualviewdemo/VirtualViewApplication.java index 8de6da6..d135cf5 100644 --- a/app/src/main/java/com/tmall/wireless/virtualviewdemo/VirtualViewApplication.java +++ b/app/src/main/java/com/tmall/wireless/virtualviewdemo/VirtualViewApplication.java @@ -24,13 +24,11 @@ package com.tmall.wireless.virtualviewdemo; -import java.util.ArrayList; -import java.util.List; - import android.app.Application; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.util.Log; + import com.libra.virtualview.common.BizCommon; import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso.LoadedFrom; @@ -40,7 +38,6 @@ import com.tmall.wireless.vaf.framework.ViewManager; import com.tmall.wireless.vaf.virtualview.Helper.ImageLoader.IImageLoaderAdapter; import com.tmall.wireless.vaf.virtualview.Helper.ImageLoader.Listener; -import com.tmall.wireless.vaf.virtualview.Helper.VVFeatureConfig; import com.tmall.wireless.vaf.virtualview.event.EventManager; import com.tmall.wireless.vaf.virtualview.view.image.ImageBase; import com.tmall.wireless.virtualviewdemo.bytes.CLICKSCRIPT; @@ -89,6 +86,9 @@ import com.tmall.wireless.virtualviewdemo.custom.TMReminderTagsView; import com.tmall.wireless.virtualviewdemo.custom.TotalContainer; +import java.util.ArrayList; +import java.util.List; + /** * Created by longerian on 2018/1/6. * @@ -118,7 +118,9 @@ public ImageTarget(Listener listener) { @Override public void onBitmapLoaded(Bitmap bitmap, LoadedFrom from) { - mImageBase.setBitmap(bitmap, true); + if (mImageBase != null) { + mImageBase.setBitmap(bitmap, true); + } if (mListener != null) { mListener.onImageLoadSuccess(bitmap); } diff --git a/app/src/main/java/com/tmall/wireless/virtualviewdemo/preview/IPDialog.java b/app/src/main/java/com/tmall/wireless/virtualviewdemo/preview/IPDialog.java new file mode 100644 index 0000000..c12715e --- /dev/null +++ b/app/src/main/java/com/tmall/wireless/virtualviewdemo/preview/IPDialog.java @@ -0,0 +1,63 @@ +package com.tmall.wireless.virtualviewdemo.preview; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.view.View; +import android.view.Window; +import android.widget.EditText; + +import com.tmall.wireless.virtualviewdemo.R; +import com.tmall.wireless.virtualviewdemo.preview.util.HttpUtil; + +/** + * IP setting dialog. + * + * @author SunQiang + * @since 2019/5/21 + */ +public class IPDialog extends Dialog { + + private EditText mIPEditText; + + private View.OnClickListener mOnOKClickListener; + + public IPDialog setOnOKClickListener(View.OnClickListener onOKClickListener) { + mOnOKClickListener = onOKClickListener; + return this; + } + + public IPDialog(@NonNull Context context) { + super(context); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_NO_TITLE); + setContentView(R.layout.dialog_ip); + setCanceledOnTouchOutside(false); + mIPEditText = findViewById(R.id.et_ip); + mIPEditText.setText(HttpUtil.getHostIp(getContext())); + findViewById(R.id.tv_ok).setOnClickListener(v -> { + HttpUtil.setHostIp(getContext(), mIPEditText.getText().toString()); + if (mOnOKClickListener != null) { + mOnOKClickListener.onClick(v); + } + dismiss(); + }); + findViewById(R.id.tv_cancel).setOnClickListener(v -> { + dismiss(); + }); + } + + @Override + public void dismiss() { + try { + super.dismiss(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/app/src/main/java/com/tmall/wireless/virtualviewdemo/preview/PreviewActivity.java b/app/src/main/java/com/tmall/wireless/virtualviewdemo/preview/PreviewActivity.java index 984e6e5..8646406 100644 --- a/app/src/main/java/com/tmall/wireless/virtualviewdemo/preview/PreviewActivity.java +++ b/app/src/main/java/com/tmall/wireless/virtualviewdemo/preview/PreviewActivity.java @@ -240,7 +240,7 @@ public void run() { private String getUrl(String name) { - return HttpUtil.getHostUrl() + name + "/data.json"; + return HttpUtil.getHostUrl(this) + name + "/data.json"; } private void loadTemplates(ArrayList templates){ diff --git a/app/src/main/java/com/tmall/wireless/virtualviewdemo/preview/PreviewListActivity.java b/app/src/main/java/com/tmall/wireless/virtualviewdemo/preview/PreviewListActivity.java index 4ab702c..1e4dfc2 100644 --- a/app/src/main/java/com/tmall/wireless/virtualviewdemo/preview/PreviewListActivity.java +++ b/app/src/main/java/com/tmall/wireless/virtualviewdemo/preview/PreviewListActivity.java @@ -78,7 +78,7 @@ protected void onListItemClick(ListView l, View v, int position, long id) { } private String getUrl() { - return HttpUtil.getHostUrl() + ".dir"; + return HttpUtil.getHostUrl(this) + ".dir"; } } diff --git a/app/src/main/java/com/tmall/wireless/virtualviewdemo/preview/util/HttpUtil.java b/app/src/main/java/com/tmall/wireless/virtualviewdemo/preview/util/HttpUtil.java index c2df2db..c9129c9 100644 --- a/app/src/main/java/com/tmall/wireless/virtualviewdemo/preview/util/HttpUtil.java +++ b/app/src/main/java/com/tmall/wireless/virtualviewdemo/preview/util/HttpUtil.java @@ -1,5 +1,7 @@ package com.tmall.wireless.virtualviewdemo.preview.util; +import android.content.Context; +import android.content.SharedPreferences; import android.text.TextUtils; import java.net.URI; @@ -12,13 +14,23 @@ * @author bianyue */ public class HttpUtil { + private static final String DEFAULT_IP = "10.0.2.2"; + private static final String SP_NAME = "virtualviewdemo"; + private static final String SP_IP = "sp_ip"; - public static String getHostIp() { - return "10.0.2.2"; + public static void setHostIp(Context context, String ip) { + SharedPreferences.Editor editor = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE).edit(); + editor.putString(SP_IP, ip); + editor.apply(); } - public static String getHostUrl() { - return "http://" + HttpUtil.getHostIp() + ":7788/"; + public static String getHostIp(Context context) { + return context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE).getString(SP_IP, + DEFAULT_IP); + } + + public static String getHostUrl(Context context) { + return "http://" + HttpUtil.getHostIp(context) + ":7788/"; } public static String getFirstPath(String str) { diff --git a/app/src/main/res/drawable/dialog_bg.xml b/app/src/main/res/drawable/dialog_bg.xml new file mode 100644 index 0000000..ba8b4e6 --- /dev/null +++ b/app/src/main/res/drawable/dialog_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_ip.xml b/app/src/main/res/layout/dialog_ip.xml new file mode 100644 index 0000000..1569ddc --- /dev/null +++ b/app/src/main/res/layout/dialog_ip.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/core/ViewBase.java b/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/core/ViewBase.java index f5c1555..46c7f28 100644 --- a/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/core/ViewBase.java +++ b/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/core/ViewBase.java @@ -24,17 +24,18 @@ package com.tmall.wireless.vaf.virtualview.core; -import java.util.Iterator; -import java.util.List; -import java.util.concurrent.ConcurrentHashMap; - +import android.content.Context; import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Matrix; +import android.graphics.NinePatch; import android.graphics.Paint; import android.graphics.Rect; +import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; +import android.os.Build; import android.os.Build.VERSION; import android.os.Trace; import android.text.TextUtils; @@ -42,6 +43,7 @@ import android.util.SparseArray; import android.view.MotionEvent; import android.view.View; + import com.libra.Utils; import com.libra.expr.common.ExprCode; import com.libra.virtualview.common.Common; @@ -60,9 +62,14 @@ import com.tmall.wireless.vaf.virtualview.loader.StringLoader; import com.tmall.wireless.vaf.virtualview.view.nlayout.INativeLayout; import com.tmall.wireless.vaf.virtualview.view.nlayout.INativeLayoutImpl; + import org.json.JSONException; import org.json.JSONObject; +import java.util.Iterator; +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; + import static com.libra.virtualview.common.ViewBaseCommon.AUTO_DIM_DIR_NONE; import static com.libra.virtualview.common.ViewBaseCommon.AUTO_DIM_DIR_X; import static com.libra.virtualview.common.ViewBaseCommon.AUTO_DIM_DIR_Y; @@ -99,6 +106,8 @@ public abstract class ViewBase implements IView { protected String mBackgroundImagePath; protected Bitmap mBackgroundImage = null; protected Matrix mMatrixBG = null; + protected NinePatch mBgNinePatch; + protected Rect mBgRect; protected int mBorderWidth = 0; protected int mBorderColor = Color.BLACK; @@ -911,6 +920,13 @@ final public void setVData(Object data, boolean isAppend) { protected void setBackgroundImage(Bitmap bmp) { mBackgroundImage = bmp; + byte[] ninePatchChunk = mBackgroundImage.getNinePatchChunk(); + if (ninePatchChunk != null && NinePatch.isNinePatchChunk(ninePatchChunk)) { + mBgNinePatch = new NinePatch(mBackgroundImage, ninePatchChunk, mBackgroundImagePath); + mBgRect = new Rect(); + } else { + mBgNinePatch = null; + } refresh(); } @@ -920,21 +936,103 @@ public void setBackgroundImage(String path) { if (null == mMatrixBG) { mMatrixBG = new Matrix(); } - mContext.getImageLoader().getBitmap(path, mMeasuredWidth, mMeasuredHeight, new ImageLoader.Listener() { - @Override - public void onImageLoadSuccess(Bitmap bmp) { - setBackgroundImage(bmp); - } + if (TextUtils.isEmpty(mBackgroundImagePath)) { + return; + } + if (getNativeView() != null) { + // Native View + Context context = getNativeView().getContext(); + if (mBackgroundImagePath.startsWith("@drawable/")) { + try { + String name = mBackgroundImagePath.substring(10); + int resourceId = context.getResources().getIdentifier(name, "drawable", + context.getPackageName()); + if (resourceId > 0) { + getNativeView().setBackgroundResource(resourceId); + } + } catch (Exception e) { + e.printStackTrace(); + } + } else if (mBackgroundImagePath.startsWith("@mipmap/")) { + try { + String name = mBackgroundImagePath.substring(8); + int resourceId = context.getResources().getIdentifier(name, "mipmap", + context.getPackageName()); + if (resourceId > 0) { + getNativeView().setBackgroundResource(resourceId); + } + } catch (Exception e) { + e.printStackTrace(); + } + } else { + mContext.getImageLoader().getBitmap(path, mMeasuredWidth, mMeasuredHeight, + new ImageLoader.Listener() { + @Override + public void onImageLoadSuccess(Bitmap bmp) { + Drawable drawable = new BitmapDrawable(bmp); + if (VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + getNativeView().setBackground(drawable); + } else { + getNativeView().setBackgroundDrawable(drawable); + } + } - @Override - public void onImageLoadSuccess(Drawable drawable) { + @Override + public void onImageLoadSuccess(Drawable drawable) { + } + + @Override + public void onImageLoadFailed() { + } + }); } + } else { + // Virtual View + Context context = mContext.forViewConstruction(); + if (mBackgroundImagePath.startsWith("@drawable/")) { + try { + String name = mBackgroundImagePath.substring(10); + int resourceId = context.getResources().getIdentifier(name, "drawable", + context.getPackageName()); + if (resourceId > 0) { + setBackgroundImage(BitmapFactory.decodeResource(context.getResources(), + resourceId)); + } + } catch (Exception e) { + e.printStackTrace(); + } + } else if (mBackgroundImagePath.startsWith("@mipmap/")) { + try { + String name = mBackgroundImagePath.substring(8); + int resourceId = context.getResources().getIdentifier(name, "mipmap", + context.getPackageName()); + if (resourceId > 0) { + setBackgroundImage(BitmapFactory.decodeResource(context.getResources(), + resourceId)); + } + } catch (Exception e) { + e.printStackTrace(); + } + } else { + mContext.getImageLoader().getBitmap(path, mMeasuredWidth, mMeasuredHeight, + new ImageLoader.Listener() { + @Override + public void onImageLoadSuccess(Bitmap bmp) { + setBackgroundImage(bmp); + } + + @Override + public void onImageLoadSuccess(Drawable drawable) { + + } - @Override - public void onImageLoadFailed() { + @Override + public void onImageLoadFailed() { + } + }); } - }); + } } public void ready() { @@ -978,9 +1076,18 @@ protected void onComDraw(Canvas canvas) { VirtualViewUtils.drawBackground(canvas, mBackground, mMeasuredWidth, mMeasuredHeight, mBorderWidth, mBorderTopLeftRadius, mBorderTopRightRadius, mBorderBottomLeftRadius, mBorderBottomRightRadius); } else if (null != mBackgroundImage) { - //TODO clip canvas if border radius set - mMatrixBG.setScale(((float) mMeasuredWidth) / mBackgroundImage.getWidth(), ((float) mMeasuredHeight) / mBackgroundImage.getHeight()); - canvas.drawBitmap(mBackgroundImage, mMatrixBG, null); + if (mBgNinePatch != null && mBgRect != null) { + mBgRect.left = 0; + mBgRect.top = 0; + mBgRect.right = mMeasuredWidth; + mBgRect.bottom = mMeasuredHeight; + mBgNinePatch.draw(canvas, mBgRect); + } else { + //TODO clip canvas if border radius set + mMatrixBG.setScale(((float) mMeasuredWidth) / mBackgroundImage.getWidth(), + ((float) mMeasuredHeight) / mBackgroundImage.getHeight()); + canvas.drawBitmap(mBackgroundImage, mMatrixBG, null); + } } } } diff --git a/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/view/image/NativeImage.java b/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/view/image/NativeImage.java index 3687e3c..96803ad 100644 --- a/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/view/image/NativeImage.java +++ b/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/view/image/NativeImage.java @@ -24,10 +24,12 @@ package com.tmall.wireless.vaf.virtualview.view.image; +import android.content.Context; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.view.View; -import android.widget.ImageView; + +import com.libra.TextUtils; import com.libra.virtualview.common.ViewBaseCommon; import com.tmall.wireless.vaf.framework.VafContext; import com.tmall.wireless.vaf.virtualview.core.ViewBase; @@ -67,7 +69,36 @@ public void setImageDrawable(Drawable d, boolean refresh) { @Override public void setSrc(String path) { mSrc = path; - this.mContext.getImageLoader().bindBitmap(mSrc, this, this.getComMeasuredWidth(), this.getComMeasuredHeight()); + if (TextUtils.isEmpty(mSrc)) { + return; + } + Context context = mNative.getContext(); + if (mSrc.startsWith("@drawable/")) { + try { + String name = mSrc.substring(10); + int resourceId = context.getResources().getIdentifier(name, "drawable", + context.getPackageName()); + if (resourceId > 0) { + mNative.setImageResource(resourceId); + } + } catch (Exception e) { + e.printStackTrace(); + } + } else if (mSrc.startsWith("@mipmap/")) { + try { + String name = mSrc.substring(8); + int resourceId = context.getResources().getIdentifier(name, "mipmap", + context.getPackageName()); + if (resourceId > 0) { + mNative.setImageResource(resourceId); + } + } catch (Exception e) { + e.printStackTrace(); + } + } else { + this.mContext.getImageLoader().bindBitmap(mSrc, this, this.getComMeasuredWidth(), + this.getComMeasuredHeight()); + } } @Override diff --git a/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/view/image/VirtualImage.java b/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/view/image/VirtualImage.java index d801c4e..fb88a68 100644 --- a/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/view/image/VirtualImage.java +++ b/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/view/image/VirtualImage.java @@ -24,11 +24,14 @@ package com.tmall.wireless.vaf.virtualview.view.image; +import android.content.Context; import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Rect; import android.text.TextUtils; + import com.libra.virtualview.common.ImageCommon; import com.tmall.wireless.vaf.framework.VafContext; import com.tmall.wireless.vaf.virtualview.core.ViewBase; @@ -87,8 +90,34 @@ public void setBitmap(Bitmap b, boolean refresh) { @Override public void loadImage(String path) { - if (this.mMeasuredWidth > 0 && this.mMeasuredHeight > 0) { - mContext.getImageLoader().bindBitmap(path, this, this.mMeasuredWidth, this.mMeasuredHeight); + if (this.mMeasuredWidth > 0 && this.mMeasuredHeight > 0 && !TextUtils.isEmpty(path)) { + Context context = mContext.forViewConstruction(); + if (path.startsWith("@drawable/")) { + try { + String name = path.substring(10); + int resourceId = context.getResources().getIdentifier(name, "drawable", + context.getPackageName()); + if (resourceId > 0) { + setBitmap(BitmapFactory.decodeResource(context.getResources(), resourceId)); + } + } catch (Exception e) { + e.printStackTrace(); + } + } else if (path.startsWith("@mipmap/")) { + try { + String name = path.substring(8); + int resourceId = context.getResources().getIdentifier(name, "mipmap", + context.getPackageName()); + if (resourceId > 0) { + setBitmap(BitmapFactory.decodeResource(context.getResources(), resourceId)); + } + } catch (Exception e) { + e.printStackTrace(); + } + } else { + mContext.getImageLoader().bindBitmap(path, this, this.mMeasuredWidth, + this.mMeasuredHeight); + } } } diff --git a/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/view/page/PageView.java b/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/view/page/PageView.java index 312890c..7d22f38 100644 --- a/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/view/page/PageView.java +++ b/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/view/page/PageView.java @@ -37,19 +37,16 @@ import android.view.View; import android.view.ViewConfiguration; import android.view.ViewGroup; - import android.view.animation.AccelerateDecelerateInterpolator; import android.view.animation.AccelerateInterpolator; -import android.view.animation.BaseInterpolator; -import android.view.animation.DecelerateInterpolator; -import android.view.animation.Interpolator; import android.view.animation.LinearInterpolator; + import com.libra.virtualview.common.ViewBaseCommon; -import com.tmall.wireless.vaf.virtualview.container.Container; import com.tmall.wireless.vaf.virtualview.core.Adapter; import com.tmall.wireless.vaf.virtualview.core.Adapter.ViewHolder; import com.tmall.wireless.vaf.virtualview.core.IContainer; +import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; @@ -119,14 +116,7 @@ public PageView(Context context) { mCurPos = 0; - mAutoSwitchHandler = new Handler() { - @Override - public void handleMessage(Message msg) { - if (MSG_AUTO_SWITCH == msg.what) { - autoSwitch(); - } - } - }; + mAutoSwitchHandler = new AutoSwitchHandler(this); mMaxVelocity = ViewConfiguration.getMaximumFlingVelocity(); } @@ -367,6 +357,26 @@ private void releaseVelocityTracker() { } } + @Override + public boolean dispatchTouchEvent(MotionEvent ev) { + switch (ev.getAction()) { + case MotionEvent.ACTION_DOWN: + if (mAutoSwitch && mAdapter.getItemCount() > 1) { + mAutoSwitchHandler.removeMessages(MSG_AUTO_SWITCH); + } + break; + case MotionEvent.ACTION_UP: + case MotionEvent.ACTION_CANCEL: + if (mAutoSwitch && mAdapter.getItemCount() > 1) { + mAutoSwitchHandler.removeMessages(MSG_AUTO_SWITCH); + mAutoSwitchHandler.sendEmptyMessageDelayed(MSG_AUTO_SWITCH, mStayTime); + } + break; + default: + } + return super.dispatchTouchEvent(ev); + } + @Override public boolean onInterceptTouchEvent(MotionEvent ev) { boolean ret = false; @@ -701,6 +711,21 @@ private TimeInterpolator getTimeInterpolater() { } } + static class AutoSwitchHandler extends Handler { + private PageView mPageView; + + AutoSwitchHandler(PageView pageView) { + mPageView = new WeakReference<>(pageView).get(); + } + + @Override + public void handleMessage(Message msg) { + if (mPageView != null && MSG_AUTO_SWITCH == msg.what) { + mPageView.autoSwitch(); + } + } + } + static public class SpringInterpolator implements TimeInterpolator { private static final float FACTOR = 4f; diff --git a/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/view/text/NativeText.java b/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/view/text/NativeText.java index 54cae6a..b7bad79 100644 --- a/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/view/text/NativeText.java +++ b/virtualview/src/main/java/com/tmall/wireless/vaf/virtualview/view/text/NativeText.java @@ -27,7 +27,6 @@ import android.graphics.Paint; import android.graphics.Typeface; import android.text.Html; -import android.text.SpannableString; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.TextUtils; @@ -35,6 +34,7 @@ import android.util.TypedValue; import android.view.Gravity; import android.view.View; + import com.libra.Utils; import com.libra.virtualview.common.StringBase; import com.libra.virtualview.common.TextBaseCommon; @@ -188,6 +188,14 @@ public void onParseValueFinished() { } else { setRealText(""); } + + if (!TextUtils.isEmpty(mTypeface)) { + try { + mNative.setTypeface(Typeface.createFromAsset(mNative.getContext().getAssets(), mTypeface)); + } catch (Exception e) { + e.printStackTrace(); + } + } } @Override