Comments (2)
I have the same issue, but before I share my solution I need to mention that this does not happen in all devices.
I am testing with a Samsung Galaxy s8 : issue occurs
and a Samsung Galaxy Tab s6: issue does not occur
The issue is caused by the inability of this library to properly handle dynamic dimensions assigned to the view. (just like you are using wrap_content
in your case)
The circle view works correctly only when the height and width are the same. So to fix this, I run a code at runtime that makes the length of the longest side of the CircleVIew match the length of the shortest side.
Doing that fixes the issue. here is my code..
public void fixCircleViewDimension(CircleView cv){
cv.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
cv.getViewTreeObserver().removeOnGlobalLayoutListener(this);
int width = cv.getWidth();
int height = cv.getHeight();
if(width > height){
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(height, height);
params.gravity = Gravity.CENTER;
cv.setLayoutParams(params);
}else{
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(width, width);
params.gravity = Gravity.CENTER;
cv.setLayoutParams(params);
}
}
});
}
side note: replace the FrameLayaout with whatever the Parent of your CircleView is.
from shapeofview.
I have the same issue, but before I share my solution I need to mention that this does not happen in all devices.
I am testing with a Samsung Galaxy s8 : issue occurs
and a Samsung Galaxy Tab s6: issue does not occurThe issue is caused by the inability of this library to properly handle dynamic dimensions assigned to the view. (just like you are using
wrap_content
in your case)
The circle view works correctly only when the height and width are the same. So to fix this, I run a code at runtime that makes the length of the longest side of the CircleVIew match the length of the shortest side.Doing that fixes the issue. here is my code..
public void fixCircleViewDimension(CircleView cv){ cv.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { cv.getViewTreeObserver().removeOnGlobalLayoutListener(this); int width = cv.getWidth(); int height = cv.getHeight(); if(width > height){ FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(height, height); params.gravity = Gravity.CENTER; cv.setLayoutParams(params); }else{ FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(width, width); params.gravity = Gravity.CENTER; cv.setLayoutParams(params); } } }); }
side note: replace the FrameLayaout with whatever the Parent of your CircleView is.
Thanks for your response.
from shapeofview.
Related Issues (20)
- cant display custom shape
- Could ShapeOfView become hardware accelerated?
- Hardware acceleration doesn't work with SDK >= 28 HOT 4
- face in clip image Center
- cant load ShapeOfView to picasso
- Can not use with Fragment
- Clipping Image Based on Color of Mask
- Software rendering doesn't support hardware bitmaps HOT 2
- Not working with exoplayer? HOT 1
- Can not build the app
- Doesn't supports background attribute HOT 1
- How can I use CutCornerView for RTL usage?
- Canvas: trying to use a recycled bitmap
- Generating wrong bitmap from ShapeOfView HOT 1
- Switching to MavenCentral HOT 2
- attribute shape_arc_cropDirection (aka in.magic.swap.user:shape_arc_cropDirection) not found. HOT 5
- CircleView is not working on the Devices having Android 7
- problem with api 33
- Android Studio Electric Eel visualizer not rendering this view or its children HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from shapeofview.