Java 类com.facebook.drawee.generic.GenericDraweeHierarchy 实例源码
项目:GitHub
文件:DraweeMocksTest.java
@Test
public void testMockBuilderOfDrawableHierarchies() {
GenericDraweeHierarchy gdh = DraweeMocks.mockDraweeHierarchy();
GenericDraweeHierarchyBuilder builder =
DraweeMocks.mockBuilderOf(gdh);
assertEquals(gdh, builder.build());
assertEquals(gdh, builder.build());
assertEquals(gdh, builder.build());
assertEquals(gdh, builder.build());
assertEquals(gdh, builder.build());
GenericDraweeHierarchy gdh1 = DraweeMocks.mockDraweeHierarchy();
GenericDraweeHierarchy gdh2 = DraweeMocks.mockDraweeHierarchy();
GenericDraweeHierarchy gdh3 = DraweeMocks.mockDraweeHierarchy();
GenericDraweeHierarchyBuilder multiBuilder =
DraweeMocks.mockBuilderOf(gdh1, gdh2, gdh3);
assertEquals(gdh1, multiBuilder.build());
assertEquals(gdh2, multiBuilder.build());
assertEquals(gdh3, multiBuilder.build());
assertEquals(gdh3, multiBuilder.build());
assertEquals(gdh3, multiBuilder.build());
}
项目:GitHub
文件:DraweeRoundedCornersFragment.java
private void changeDraweeViewScaleType(
SimpleDraweeView draweeView,
ScaleType scaleType,
@Nullable PointF focusPoint) {
final GenericDraweeHierarchy hierarchy = draweeView.getHierarchy();
hierarchy.setActualImageScaleType(scaleType);
hierarchy.setActualImageFocusPoint(focusPoint != null ? focusPoint : new PointF(0.5f, 0.5f));
final RoundingParams roundingParams = Preconditions.checkNotNull(hierarchy.getRoundingParams());
if (BITMAP_ONLY_SCALETYPES.contains(scaleType)) {
roundingParams.setRoundingMethod(RoundingParams.RoundingMethod.BITMAP_ONLY);
} else {
roundingParams.setOverlayColor(mWindowBackgroundColor);
}
hierarchy.setRoundingParams(roundingParams);
}
项目:Zoomable
文件:MainActivity.java
private void displayImage(SimpleDraweeView draweeView, String url) {
GenericDraweeHierarchy hierarchy = draweeView.getHierarchy();
//设置占位图
if (hierarchy == null) {
hierarchy = GenericDraweeHierarchyBuilder.newInstance(getResources())
.setPlaceholderImage(getResources().getDrawable(R.mipmap.ic_launcher)
, ScalingUtils.ScaleType.CENTER).build();
draweeView.setHierarchy(hierarchy);
} else {
hierarchy.setPlaceholderImage(getResources().getDrawable(R.mipmap.ic_launcher)
, ScalingUtils.ScaleType.CENTER);
}
//构建ImageRequestBuilder,传入请求Uri
ImageRequestBuilder requestBuilder = ImageRequestBuilder.newBuilderWithSource(Uri.parse(url));
//构建Controller
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setOldController(draweeView.getController())
.setImageRequest(requestBuilder.build())
.build();
//设置图片,Fresco设置显示图片都是通过Controller来实现
draweeView.setController(controller);
}
项目:CommentGallery
文件:CommentImageGrid.java
private ViewGroup generateImageLayout() {
SquareDraweeView imageView = new SquareDraweeView(mContext);
GenericDraweeHierarchyBuilder builder =
new GenericDraweeHierarchyBuilder(mContext.getResources());
GenericDraweeHierarchy hierarchy = builder
.setFadeDuration(300).setActualImageScaleType(ScalingUtils.ScaleType.CENTER_CROP)
.build();
if (mPlaceholderImageResId > 0) {
hierarchy.setPlaceholderImage(mPlaceholderImageResId);
}
if (mFailureImageResId > 0) {
hierarchy.setFailureImage(mFailureImageResId);
}
imageView.setHierarchy(hierarchy);
RelativeLayout.LayoutParams imgLp = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
imgLp.setMargins(mImageBorderThickness, mImageBorderThickness, mImageBorderThickness, mImageBorderThickness);
RelativeLayout mainLayout = new RelativeLayout(mContext);
mainLayout.setBackgroundColor(mImageBorderColor);
mainLayout.addView(imageView, imgLp);
return mainLayout;
}
项目:PicKing
文件:Attacher.java
public Attacher(DraweeView<GenericDraweeHierarchy> draweeView) {
mDraweeView = new WeakReference<>(draweeView);
draweeView.getHierarchy().setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER);
draweeView.setOnTouchListener(this);
mScaleDragDetector = new ScaleDragDetector(draweeView.getContext(), this);
mGestureDetector = new GestureDetectorCompat(draweeView.getContext(),
new GestureDetector.SimpleOnGestureListener() {
@Override public void onLongPress(MotionEvent e) {
super.onLongPress(e);
if (null != mLongClickListener) {
mLongClickListener.onLongClick(getDraweeView());
}
}
});
mGestureDetector.setOnDoubleTapListener(new DefaultOnDoubleTapListener(this));
}
项目:PicKing
文件:Attacher.java
@Override public void run() {
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView == null) {
return;
}
float t = interpolate();
float scale = mZoomStart + t * (mZoomEnd - mZoomStart);
float deltaScale = scale / getScale();
onScale(deltaScale, mFocalX, mFocalY);
if (t < 1f) {
postOnAnimation(draweeView, this);
}
}
项目:PicKing
文件:Attacher.java
@Override public void run() {
if (mScroller.isFinished()) {
return;
}
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView != null && mScroller.computeScrollOffset()) {
final int newX = mScroller.getCurrX();
final int newY = mScroller.getCurrY();
mMatrix.postTranslate(mCurrentX - newX, mCurrentY - newY);
draweeView.invalidate();
mCurrentX = newX;
mCurrentY = newY;
postOnAnimation(draweeView, this);
}
}
项目:tumbviewer
文件:PhotoPostVH.java
private SimpleDraweeView createSimpleDraweeView() {
SimpleDraweeView view = new SimpleDraweeView(itemView.getContext());
GenericDraweeHierarchyBuilder builder =
new GenericDraweeHierarchyBuilder(itemView.getContext().getResources());
GenericDraweeHierarchy hierarchy = builder
.setActualImageScaleType(ScalingUtils.ScaleType.CENTER_CROP)
.setPlaceholderImage(R.color.loading_color)
.setPlaceholderImageScaleType(ScalingUtils.ScaleType.FIT_CENTER)
.setFailureImage(R.mipmap.ic_failed)
.setFailureImageScaleType(ScalingUtils.ScaleType.CENTER)
.build();
view.setHierarchy(hierarchy);
view.setTag(atomicInteger.getAndIncrement());
view.setOnClickListener(this);
return view;
}
项目:react-native-udesk
文件:UdeskUtil.java
public static void loadHeadView(Context context, SimpleDraweeView simpleDraweeView, Uri httpUri) {
//初始化圆角圆形参数对象
RoundingParams rp = new RoundingParams();
//设置图像是否为圆形
rp.setRoundAsCircle(true);
final GenericDraweeHierarchy hierarchy = new GenericDraweeHierarchyBuilder(context.getResources())
.setRoundingParams(rp)
.build();
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(httpUri)
.setTapToRetryEnabled(true)
.setOldController(simpleDraweeView.getController())
.build();
simpleDraweeView.setHierarchy(hierarchy);
simpleDraweeView.setController(controller);
}
项目:android-photo-picker
文件:Attacher.java
@Override public void onDrag(float dx, float dy) {
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView != null && !mScaleDragDetector.isScaling()) {
mMatrix.postTranslate(dx, dy);
checkMatrixAndInvalidate();
ViewParent parent = draweeView.getParent();
if (parent == null) {
return;
}
if (mAllowParentInterceptOnEdge
&& !mScaleDragDetector.isScaling()
&& !mBlockParentIntercept) {
if (mScrollEdge == EDGE_BOTH || (mScrollEdge == EDGE_LEFT && dx >= 1f) || (
mScrollEdge == EDGE_RIGHT
&& dx <= -1f)) {
parent.requestDisallowInterceptTouchEvent(false);
}
} else {
parent.requestDisallowInterceptTouchEvent(true);
}
}
}
项目:AndroidImageSelect
文件:Attacher.java
@Override public void run() {
if (mScroller.isFinished()) {
return;
}
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView != null && mScroller.computeScrollOffset()) {
final int newX = mScroller.getCurrX();
final int newY = mScroller.getCurrY();
mMatrix.postTranslate(mCurrentX - newX, mCurrentY - newY);
draweeView.invalidate();
mCurrentX = newX;
mCurrentY = newY;
postOnAnimation(draweeView, this);
}
}
项目:android-photo-picker
文件:Attacher.java
@Override public void run() {
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView == null) {
return;
}
float t = interpolate();
float scale = mZoomStart + t * (mZoomEnd - mZoomStart);
float deltaScale = scale / getScale();
onScale(deltaScale, mFocalX, mFocalY);
if (t < 1f) {
postOnAnimation(draweeView, this);
}
}
项目:android-photo-picker
文件:Attacher.java
@Override public void run() {
if (mScroller.isFinished()) {
return;
}
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView != null && mScroller.computeScrollOffset()) {
final int newX = mScroller.getCurrX();
final int newY = mScroller.getCurrY();
mMatrix.postTranslate(mCurrentX - newX, mCurrentY - newY);
draweeView.invalidate();
mCurrentX = newX;
mCurrentY = newY;
postOnAnimation(draweeView, this);
}
}
项目:AndroidImageSelect
文件:Attacher.java
@Override public void onDrag(float dx, float dy) {
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView != null && !mScaleDragDetector.isScaling()) {
mMatrix.postTranslate(dx, dy);
checkMatrixAndInvalidate();
ViewParent parent = draweeView.getParent();
if (parent == null) {
return;
}
if (mAllowParentInterceptOnEdge
&& !mScaleDragDetector.isScaling()
&& !mBlockParentIntercept) {
if (mScrollEdge == EDGE_BOTH || (mScrollEdge == EDGE_LEFT && dx >= 1f) || (
mScrollEdge == EDGE_RIGHT
&& dx <= -1f)) {
parent.requestDisallowInterceptTouchEvent(false);
}
} else {
parent.requestDisallowInterceptTouchEvent(true);
}
}
}
项目:CanPhotos
文件:Attacher.java
public Attacher(DraweeView<GenericDraweeHierarchy> draweeView) {
mDraweeView = new WeakReference<>(draweeView);
draweeView.getHierarchy().setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER);
draweeView.setOnTouchListener(this);
mScaleDragDetector = new ScaleDragDetector(draweeView.getContext(), this);
mGestureDetector = new GestureDetectorCompat(draweeView.getContext(),
new GestureDetector.SimpleOnGestureListener() {
@Override public void onLongPress(MotionEvent e) {
super.onLongPress(e);
if (null != mLongClickListener) {
mLongClickListener.onLongClick(getDraweeView());
}
}
});
mGestureDetector.setOnDoubleTapListener(new DefaultOnDoubleTapListener(this));
}
项目:CanPhotos
文件:Attacher.java
@Override public void run() {
if (mScroller.isFinished()) {
return;
}
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView != null && mScroller.computeScrollOffset()) {
final int newX = mScroller.getCurrX();
final int newY = mScroller.getCurrY();
mMatrix.postTranslate(mCurrentX - newX, mCurrentY - newY);
draweeView.invalidate();
mCurrentX = newX;
mCurrentY = newY;
postOnAnimation(draweeView, this);
}
}
项目:Li-MVPArms
文件:PhotoView.java
protected void init() {
if (null == mAttacher || null == mAttacher.getImageView()) {
mAttacher = new PhotoViewAttacher(this);
}
if (null != mPendingScaleType) {
setScaleType(mPendingScaleType);
mPendingScaleType = null;
}
if (mDraweeHolder == null) {
GenericDraweeHierarchy hierarchy = new GenericDraweeHierarchyBuilder(getResources())
.setFadeDuration(500)
.setProgressBarImage(new CustomProgressbarDrawable(this))
.build();
mDraweeHolder = DraweeHolder.create(hierarchy, getContext());
}
}
项目:Li-MVPArms
文件:ConfigConstants.java
public static GenericDraweeHierarchy getGenericDraweeHierarchy(Context context){
GenericDraweeHierarchy gdh = new GenericDraweeHierarchyBuilder(context.getResources())
// .reset()//重置
// .setActualImageColorFilter(colorFilter)//颜色过滤
// .setActualImageFocusPoint(focusPoint)//focusCrop, 需要指定一个居中点
// .setActualImageMatrix(actualImageMatrix)
// .setActualImageScaleType(actualImageScaleType)//fresco:actualImageScaleType="focusCrop"缩放类型
// .setBackground(background)//fresco:backgroundImage="@color/blue"背景图片
// .setBackgrounds(backgrounds)
// .setFadeDuration(fadeDuration)//fresco:fadeDuration="300"加载图片动画时间
.setFailureImage(ConfigConstants.sErrorDrawable)//fresco:failureImage="@drawable/error"失败图
// .setFailureImage(failureDrawable, failureImageScaleType)//fresco:failureImageScaleType="centerInside"失败图缩放类型
// .setOverlay(overlay)//fresco:overlayImage="@drawable/watermark"叠加图
// .setOverlays(overlays)
.setPlaceholderImage(ConfigConstants.sPlaceholderDrawable)//fresco:placeholderImage="@color/wait_color"占位图
// .setPlaceholderImage(placeholderDrawable, placeholderImageScaleType)//fresco:placeholderImageScaleType="fitCenter"占位图缩放类型
// .setPressedStateOverlay(drawable)//fresco:pressedStateOverlayImage="@color/red"按压状态下的叠加图
.setProgressBarImage(new ProgressBarDrawable())//进度条fresco:progressBarImage="@drawable/progress_bar"进度条
// .setProgressBarImage(progressBarImage, progressBarImageScaleType)//fresco:progressBarImageScaleType="centerInside"进度条类型
// .setRetryImage(retryDrawable)//fresco:retryImage="@drawable/retrying"点击重新加载
// .setRetryImage(retryDrawable, retryImageScaleType)//fresco:retryImageScaleType="centerCrop"点击重新加载缩放类型
.setRoundingParams(RoundingParams.asCircle())//圆形/圆角fresco:roundAsCircle="true"圆形
.build();
return gdh;
}
项目:SprintNBA
文件:Attacher.java
@Override public void onDrag(float dx, float dy) {
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView != null && !mScaleDragDetector.isScaling()) {
mMatrix.postTranslate(dx, dy);
checkMatrixAndInvalidate();
ViewParent parent = draweeView.getParent();
if (parent == null) {
return;
}
if (mAllowParentInterceptOnEdge
&& !mScaleDragDetector.isScaling()
&& !mBlockParentIntercept) {
if (mScrollEdge == EDGE_BOTH || (mScrollEdge == EDGE_LEFT && dx >= 1f) || (
mScrollEdge == EDGE_RIGHT
&& dx <= -1f)) {
parent.requestDisallowInterceptTouchEvent(false);
}
} else {
parent.requestDisallowInterceptTouchEvent(true);
}
}
}
项目:SprintNBA
文件:Attacher.java
@Override public void run() {
if (mScroller.isFinished()) {
return;
}
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView != null && mScroller.computeScrollOffset()) {
final int newX = mScroller.getCurrX();
final int newY = mScroller.getCurrY();
mMatrix.postTranslate(mCurrentX - newX, mCurrentY - newY);
draweeView.invalidate();
mCurrentX = newX;
mCurrentY = newY;
postOnAnimation(draweeView, this);
}
}
项目:AndroidImageSelect
文件:Attacher.java
public Attacher(DraweeView<GenericDraweeHierarchy> draweeView) {
mDraweeView = new WeakReference<>(draweeView);
draweeView.getHierarchy().setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER);
draweeView.setOnTouchListener(this);
mScaleDragDetector = new ScaleDragDetector(draweeView.getContext(), this);
mGestureDetector = new GestureDetectorCompat(draweeView.getContext(),
new GestureDetector.SimpleOnGestureListener() {
@Override public void onLongPress(MotionEvent e) {
super.onLongPress(e);
if (null != mLongClickListener) {
mLongClickListener.onLongClick(getDraweeView());
}
}
});
mGestureDetector.setOnDoubleTapListener(new DefaultOnDoubleTapListener(this));
}
项目:Chateau
文件:FullScreenImageActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_image);
final SimpleDraweeView mImageView = (SimpleDraweeView) findViewById(R.id.view_image_image);
final int shortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime);
final GenericDraweeHierarchy hierarchy = new GenericDraweeHierarchyBuilder(getResources())
.setFadeDuration(shortAnimTime)
.setProgressBarImage(new ImageLoadingDrawable(getResources()))
.setFailureImage(getResources().getDrawable(R.drawable.ic_upload_failed), ScalingUtils.ScaleType.CENTER_INSIDE)
.setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER)
.build();
mImageView.setHierarchy(hierarchy);
mImageView.setImageURI(getIntent().getParcelableExtra(EXTRA_IMAGE_URI));
}
项目:AyoSunny
文件:Attacher.java
public Attacher(DraweeView<GenericDraweeHierarchy> draweeView) {
mDraweeView = new WeakReference<>(draweeView);
draweeView.getHierarchy().setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER);
draweeView.setOnTouchListener(this);
mScaleDragDetector = new ScaleDragDetector(draweeView.getContext(), this);
mGestureDetector = new GestureDetectorCompat(draweeView.getContext(),
new GestureDetector.SimpleOnGestureListener() {
@Override public void onLongPress(MotionEvent e) {
super.onLongPress(e);
if (null != mLongClickListener) {
mLongClickListener.onLongClick(getDraweeView());
}
}
});
mGestureDetector.setOnDoubleTapListener(new DefaultOnDoubleTapListener(this));
}
项目:GitHub
文件:DraweeMocks.java
/**
* Creates a mock GenericDraweeHierarchyBuilder with stubbed build.
* @param drawableHierarchies drawable hierarchies to return on {@code build()}
* @return mock GenericDraweeHierarchyBuilder
*/
public static GenericDraweeHierarchyBuilder mockBuilderOf(
GenericDraweeHierarchy... drawableHierarchies) {
GenericDraweeHierarchyBuilder builder =
mock(GenericDraweeHierarchyBuilder.class, CALLS_REAL_METHODS);
final Supplier<GenericDraweeHierarchy> gdhProvider = supplierOf(drawableHierarchies);
doAnswer(
new Answer() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
return gdhProvider.get();
}
}).when(builder).build();
return builder;
}
项目:GitHub
文件:VolleyDraweeAdapter.java
@Override
public VolleyDraweeHolder onCreateViewHolder(ViewGroup parent, int viewType) {
GenericDraweeHierarchy gdh = new GenericDraweeHierarchyBuilder(getContext().getResources())
.setPlaceholderImage(Drawables.sPlaceholderDrawable)
.setFailureImage(Drawables.sErrorDrawable)
.build();
InstrumentedDraweeView view = new InstrumentedDraweeView(getContext());
view.setHierarchy(gdh);
return new VolleyDraweeHolder(getContext(), parent, view, getPerfListener());
}
项目:GitHub
文件:FrescoAdapter.java
@Override
public FrescoHolder onCreateViewHolder(ViewGroup parent, int viewType) {
GenericDraweeHierarchy gdh = new GenericDraweeHierarchyBuilder(getContext().getResources())
.setPlaceholderImage(Drawables.sPlaceholderDrawable)
.setFailureImage(Drawables.sErrorDrawable)
.setProgressBarImage(new ProgressBarDrawable())
.setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER)
.build();
final InstrumentedDraweeView instrView = new InstrumentedDraweeView(getContext(), gdh);
return new FrescoHolder(getContext(), parent, instrView, getPerfListener());
}
项目:GitHub
文件:DraweeViewAdapter.java
@Override
public DraweeViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
GenericDraweeHierarchy gdh = DraweeUtil.createDraweeHierarchy(mContext, mConfig);
final InstrumentedDraweeView simpleDraweeView =
new InstrumentedDraweeView(mContext, gdh, mConfig);
simpleDraweeView.setPadding(mPaddingPx, mPaddingPx, mPaddingPx, mPaddingPx);
return new DraweeViewHolder(parent, simpleDraweeView, mConfig, mPerfListener);
}
项目:GitHub
文件:DraweeViewListAdapter.java
@Override
public View getView(int position, View convertView, ViewGroup parent) {
InstrumentedDraweeView draweeView;
if (convertView == null) {
final Context context = parent.getContext();
GenericDraweeHierarchy gdh = DraweeUtil.createDraweeHierarchy(context, mConfig);
draweeView = new InstrumentedDraweeView(context, gdh, mConfig);
SizeUtil.setConfiguredSize(parent, draweeView, mConfig);
draweeView.setPadding(mPaddingPx, mPaddingPx, mPaddingPx, mPaddingPx);
} else {
draweeView = (InstrumentedDraweeView) convertView;
}
final Uri uri = getItem(position);
draweeView.initInstrumentation(uri.toString(), mPerfListener);
ImageRequestBuilder imageRequestBuilder = ImageRequestBuilder
.newBuilderWithSource(uri)
.setResizeOptions(
new ResizeOptions(
draweeView.getLayoutParams().width,
draweeView.getLayoutParams().height));
PipelineUtil.addOptionalFeatures(imageRequestBuilder, mConfig);
// Create the Builder
PipelineDraweeControllerBuilder builder = Fresco.newDraweeControllerBuilder()
.setImageRequest(imageRequestBuilder.build());
if (mConfig.reuseOldController) {
builder.setOldController(draweeView.getController());
}
if (mConfig.instrumentationEnabled) {
draweeView.setListener(builder);
}
draweeView.setController(builder.build());
return draweeView;
}
项目:GitHub
文件:DraweeUtil.java
/**
* Creates the Hierarchy using the information into the Config
*
* @param context The Context
* @param config The Config object
* @return The Hierarchy to use
*/
public static GenericDraweeHierarchy createDraweeHierarchy(
final Context context,
final Config config) {
GenericDraweeHierarchyBuilder builder =
new GenericDraweeHierarchyBuilder(context.getResources())
.setFadeDuration(config.fadeDurationMs)
.setPlaceholderImage(Const.PLACEHOLDER)
.setFailureImage(Const.FAILURE)
.setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER);
applyScaleType(builder, config);
if (config.useRoundedCorners || config.drawBorder) {
final Resources res = context.getResources();
final RoundingParams roundingParams = new RoundingParams();
if (config.useRoundedCorners) {
roundingParams.setRoundingMethod(RoundingParams.RoundingMethod.BITMAP_ONLY);
roundingParams.setCornersRadius(res.getDimensionPixelSize(R.dimen.drawee_corner_radius));
roundingParams.setRoundAsCircle(config.useRoundedAsCircle);
}
if (config.drawBorder) {
//noinspection deprecation
roundingParams.setBorderColor(res.getColor(R.color.colorPrimary));
roundingParams.setBorderWidth(res.getDimensionPixelSize(R.dimen.drawee_border_width));
}
builder.setRoundingParams(roundingParams);
}
return builder.build();
}
项目:JD-Test
文件:CircleImageView.java
/**
* 使用代码设置为圆圈形状
*/
private void initCircleImage() {
GenericDraweeHierarchy hierarchy = getHierarchy();
if(hierarchy != null){
hierarchy.setRoundingParams(new RoundingParams().setRoundAsCircle(true));
setHierarchy(hierarchy);
}
}
项目:PicKing
文件:DefaultOnDoubleTapListener.java
@Override public boolean onSingleTapConfirmed(MotionEvent e) {
if (mAttacher == null) {
return false;
}
DraweeView<GenericDraweeHierarchy> draweeView = mAttacher.getDraweeView();
if (draweeView == null) {
return false;
}
if (mAttacher.getOnPhotoTapListener() != null) {
final RectF displayRect = mAttacher.getDisplayRect();
if (null != displayRect) {
final float x = e.getX(), y = e.getY();
if (displayRect.contains(x, y)) {
float xResult = (x - displayRect.left) / displayRect.width();
float yResult = (y - displayRect.top) / displayRect.height();
mAttacher.getOnPhotoTapListener().onPhotoTap(draweeView, xResult, yResult);
return true;
}
}
}
if (mAttacher.getOnViewTapListener() != null) {
mAttacher.getOnViewTapListener().onViewTap(draweeView, e.getX(), e.getY());
return true;
}
return false;
}
项目:PicKing
文件:Attacher.java
@Override public void setScale(float scale, float focalX, float focalY, boolean animate) {
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView == null || scale < mMinScale || scale > mMaxScale) {
return;
}
if (animate) {
draweeView.post(new AnimatedZoomRunnable(getScale(), scale, focalX, focalY));
} else {
mMatrix.setScale(scale, scale, focalX, focalY);
checkMatrixAndInvalidate();
}
}
项目:PicKing
文件:Attacher.java
private int getViewHeight() {
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView != null) {
return draweeView.getHeight()
- draweeView.getPaddingTop()
- draweeView.getPaddingBottom();
}
return 0;
}
项目:PicKing
文件:Attacher.java
public void checkMatrixAndInvalidate() {
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView == null) {
return;
}
if (checkMatrixBounds()) {
draweeView.invalidate();
}
}
项目:PicKing
文件:Attacher.java
private RectF getDisplayRect(Matrix matrix) {
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView == null || (mImageInfoWidth == -1 && mImageInfoHeight == -1)) {
return null;
}
mDisplayRect.set(0.0F, 0.0F, mImageInfoWidth, mImageInfoHeight);
draweeView.getHierarchy().getActualImageBounds(mDisplayRect);
matrix.mapRect(mDisplayRect);
return mDisplayRect;
}
项目:PicKing
文件:Attacher.java
private void resetMatrix() {
mMatrix.reset();
checkMatrixBounds();
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView != null) {
draweeView.invalidate();
}
}
项目:PicKing
文件:Attacher.java
private void checkMinScale() {
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView == null) {
return;
}
if (getScale() < mMinScale) {
RectF rect = getDisplayRect();
if (null != rect) {
draweeView.post(new AnimatedZoomRunnable(getScale(), mMinScale, rect.centerX(),
rect.centerY()));
}
}
}
项目:PicKing
文件:Attacher.java
@Override public void onDrag(float dx, float dy) {
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView != null && !mScaleDragDetector.isScaling()) {
mMatrix.postTranslate(dx, dy);
checkMatrixAndInvalidate();
ViewParent parent = draweeView.getParent();
if (parent == null) {
return;
}
if (mAllowParentInterceptOnEdge
&& !mScaleDragDetector.isScaling()
&& !mBlockParentIntercept) {
if (mOrientation == HORIZONTAL && (mScrollEdgeX == EDGE_BOTH || (mScrollEdgeX
== EDGE_LEFT && dx >= 1f) || (mScrollEdgeX == EDGE_RIGHT && dx <= -1f))) {
parent.requestDisallowInterceptTouchEvent(false);
} else if (mOrientation == VERTICAL && (mScrollEdgeY == EDGE_BOTH || (mScrollEdgeY
== EDGE_TOP && dy >= 1f) || (mScrollEdgeY == EDGE_BOTTOM && dy <= -1f))) {
parent.requestDisallowInterceptTouchEvent(false);
}
} else {
parent.requestDisallowInterceptTouchEvent(true);
}
}
}
项目:PicKing
文件:Attacher.java
@Override public void onFling(float startX, float startY, float velocityX, float velocityY) {
DraweeView<GenericDraweeHierarchy> draweeView = getDraweeView();
if (draweeView == null) {
return;
}
mCurrentFlingRunnable = new FlingRunnable(draweeView.getContext());
mCurrentFlingRunnable.fling(getViewWidth(), getViewHeight(), (int) velocityX,
(int) velocityY);
draweeView.post(mCurrentFlingRunnable);
}
项目:react-native-android-bottom-navigation
文件:RNBottomNavigation.java
private void setMenuItemIcon(final MenuItem item, ReadableMap iconSource) {
DraweeHolder<GenericDraweeHierarchy> holder =
DraweeHolder.create(createDraweeHierarchy(), getContext());
ActionIconControllerListener controllerListener =
new ActionIconControllerListener(item, holder);
controllerListener.setIconImageInfo(getIconImageInfo(iconSource));
setIconSource(iconSource, controllerListener, holder);
mActionsHolder.add(holder);
}