我已经设置app:overlayImage
了 drawable以SimpleDraweeView
在. 设置属性正确显示图像上的波纹效果,但热点始终从中心显示。为了解决这个问题,我需要我在 xml 资源中设置的,但我没有找到任何方法来以编程方式将 overlayImage 可绘制设置为资源。xml layout
SimpleDraweeView
overlayImage
overlayImage drawable
SimpleDraweeView
如果我GenericDraweeHierarchy
以编程方式进行准备,那么我可以准备 overlayImage 可绘制对象并可以为其设置触摸侦听器热点。代码片段:
SimpleDraweeView image = (SimpleDraweeView) findViewById(R.id.image);
GenericDraweeHierarchyBuilder builder = new GenericDraweeHierarchyBuilder(mContext.getResources());
Drawable overlayImage = getDrawable(R.drawable.image_selector);
builder.setOverlay(overlayImage);
image.setHierarchy(builder.build());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
view.setOnTouchListener(new View.OnTouchListener() {
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public boolean onTouch(View v, MotionEvent event) {
if (overlayImage != null) {
overlayImage.setHotspot(event.getX(), event.getY());
}
return false;
}
});
}
但是我不想以GenericDraweeHierarchy
编程方式创建,因为我已经在 xml 中设置了不同的属性并且不想更改它并以编程方式设置。请建议overlayImage
我在xml layout
资源中设置的任何可绘制方法。
我试过但没有奏效:
- 用于获取和获取它的方法
getTopLevelDrawable()
和getDrawable()
方法 。SimpleDraweeView
drawable
setHotSpot
- 通过设置ControllerListener并将hotSpot设置为获取的drawable来使用加载后图像的
getTopLevelDrawable
方法。SimpleDraweeView
如果我可以以任何其他方式添加热点,请告诉我。