@Override public int insertBitmapFromResource(String name) { int id = ResourceUtil.getDrawableIDFromName(getContext(), name); name = ImageCache.BITMAP_PREFIX + name; final Drawable d = mView.getImageCache().addBitmap(getContext().getResources(), id, name); synchronized (mView.coreView()) { return d == null ? 0 : mView.coreView().addImageShape(name, ImageCache.getWidth(d), ImageCache.getHeight(d)); } }
@Override public int insertSVGFromResource(String name, int xc, int yc) { int id = ResourceUtil.getResIDFromName(getContext(), "raw", name); name = ImageCache.SVG_PREFIX + name; final Drawable d = mView.getImageCache().addSVG(getContext().getResources(), id, name); synchronized (mView.coreView()) { return d == null ? 0 : mView .coreView() .addImageShape(name, xc, yc, ImageCache.getWidth(d), ImageCache.getHeight(d)); } }
protected void initView(Context context) { mGestureListener = new GestureListener(mCoreView, mViewAdapter, this); mGestureDetector = new GestureDetector(context, mGestureListener); ResourceUtil.setContextImages(context); final DisplayMetrics dm = context.getApplicationContext().getResources().getDisplayMetrics(); GiCoreView.setScreenDpi(dm.densityDpi, dm.density); if (mCanvasRegen != null) { // 避免路径太大不能渲染 setLayerType(View.LAYER_TYPE_SOFTWARE, null); } this.setOnTouchListener( new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent e) { if (mCoreView == null || !mGestureEnable) { return false; } if (e.getActionMasked() == MotionEvent.ACTION_DOWN) { activateView(); } boolean ret; if (mCoreView.isCommand("splines")) { ret = mGestureListener.onTouchDrag(v, e.getActionMasked(), e.getX(0), e.getY(0)); } else { ret = mGestureListener.onTouch(v, e) || mGestureDetector.onTouchEvent(e); if (mGestureListener.getLastGesture() == GiGestureType.kGiGestureTap) { v.performClick(); } } return ret; } }); }
@Override public int insertBitmapFromResource(int id, int xc, int yc) { return insertBitmapFromResource(ResourceUtil.getResName(getContext(), id), xc, yc); }
@Override public int insertSVGFromResource(int id) { return insertSVGFromResource(ResourceUtil.getResName(getContext(), id)); }
@Override public void setExtraContextImages(Context context, int[] ids) { ResourceUtil.setExtraContextImages(context, ids); }