h6ah4i / android-verticalseekbar Goto Github PK
View Code? Open in Web Editor NEWVertical SeekBar class which supports Android 4.x - 9.x.
License: Apache License 2.0
Vertical SeekBar class which supports Android 4.x - 9.x.
License: Apache License 2.0
If I have two vertical seekbars and I touch them simultaneously multiple times the app crashes: (fairly easy to replicate
the implementation is described below:
Here is the implementation:
<com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_below="@+id/left">
<com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBar
android:id="@+id/vsb_volume_left"
android:layout_width="0dp"
android:layout_height="0dp"
android:thumb="@drawable/drag_thumb_left"
android:progressDrawable="@drawable/seekbar_progressbar"
android:progress="50"
android:maxHeight="9dp"
android:minHeight="9dp"
app:seekBarRotation="CW270"
</com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper>
``
<com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_below="@+id/right">
<com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBar
android:id="@+id/vsb_volume_right"
android:layout_width="0dp"
android:layout_height="0dp"
android:maxHeight="9dp"
android:minHeight="9dp"
android:thumb="@drawable/drag_thumb_right"
android:progressDrawable="@drawable/seekbar_progressbar"
app:seekBarRotation="CW270" />
</com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper>
*No java side implementation
Here is the log:
```
06-08 17:37:05.286 11486-11486/com.domain.test E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.domain.test, PID: 11486
java.lang.IllegalArgumentException: pointerIndex out of range
at android.view.MotionEvent.nativeGetAxisValue(Native Method)
at android.view.MotionEvent.getX(MotionEvent.java:2074)
at android.support.v4.view.MotionEventCompatEclair.getX(MotionEventCompatEclair.java:32)
at android.support.v4.view.MotionEventCompat$EclairMotionEventVersionImpl.getX(MotionEventCompat.java:110)
at android.support.v4.view.MotionEventCompat.getX(MotionEventCompat.java:462)
at android.support.v4.view.ViewPager.onInterceptTouchEvent(ViewPager.java:1987)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2108)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2403)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1737)
at android.app.Activity.dispatchTouchEvent(Activity.java:2771)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2364)
at android.view.View.dispatchPointerEvent(View.java:9520)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4238)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4104)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3650)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3703)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3669)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3795)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3677)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3852)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3650)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3703)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3669)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3677)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3650)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5932)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5906)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5867)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6035)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:176)
at android.view.ViewRootImpl.doConsumeBatch
*this issue does not happen with standard SeekBar object
How I can use this library horizontally? I want to use this in horizontal mode but I don't find any solution. Can anyone answer this question?
Thanks in advance.
The vertical seekbar disappears when the device is using an RTL layout direction. This is 100% reproducible and I don't believe this is Android version specific.
JCenter is being sunset. Please upload artifacts to Maven Central by May 1st.
Hi,
I'm using v0.7.2.
I want to add an ImageView
behind the vertical seek bar. To do that, I do these steps:
VerticalSeekBarWrapper
to 150dp.XML layout looks like this:
<FrameLayout
android:layout_width='wrap_content'
android:layout_height='wrap_content'>
<ImageView
android:layout_width='wrap_content'
android:layout_height='wrap_content'
android:layout_gravity='center'
android:src='@drawable/...'/>
<com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper
android:layout_width='wrap_content'
android:layout_height='150dp'
android:layout_gravity='center_horizontal'>
<!-- NOTE: android:splitTrack="false" is required for Android N+. -->
<com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBar
android:layout_width='0dp'
android:layout_height='0dp'
android:splitTrack='false'
app:seekBarRotation='CW270' /> <!-- Rotation: CW90 or CW270 -->
</com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper>
</FrameLayout>
However in run-time, there are top and bottom gaps, like this:
I try again to use 180dp
as layout height for the VerticalSeekBarWrapper
. It looks better:
So may I ask if you could publish official paddings (top/left/right/bottom) that the widget uses?
Thank you,
Edited
Updated sample XML layout. I was copying/pasting from my source, so the layout height was 180dp
. Now updated to 150dp
as my description.
I am using this layout.....
<com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper
android:id="@+id/seekbar"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginBottom=""
android:layout_marginLeft=""
android:layout_marginTop="">
<io.techery.progresshint.addition.widget.VerticalSeekBar
android:id="@+id/seekbar_vertical"
style=""
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop=""
android:max="10"
android:progressDrawable=""
android:thumb=""
android:thumbOffset=""
app:popupAlwaysShown="true"
app:popupLayout=""
app:popupStyle="follow"
app:seekBarRotation="CW270"
app:tickMarkTint="" />
</com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper>
Look like this.
It's in the title. Doesn't matter if you have a circle one, but gets in the way otherwise
Hi,
padding works very strange when used on VerticalSeekBar (not the wrapper). Padding(all) seems to work for left and right but not top and bottom. PaddingLeft/Right seems to work for bottom only. Also padding works differently between API23 and previous APIs, at least inside of CardViews.
Best,
Burtan
I am trying to use your library in my project, however when adding:
implementation 'com.h6ah4i.android.widget.verticalseekbar:verticalseekbar:1.0.0'
Compilation fails and I receive the following issues:
error: resource android:attr/dialogCornerRadius not found.
error: resource android:attr/ttcIndex not found.
I am compiling using version 27 of Android. It doesn't seem that this issue should be happening. From researching myself it would seem my AppCompat should be out of date. However since you have support from Android 4 to Android 9, I don't think that should be an issue.
Please let me know if you have any suggestion or make any updates.
Thank you.
After adding the dependency to my build.gradle file and pasting the example into my layout XML file, I get the above error. Am I missing a step? Any help would be appreciated!
in Android 11 tablet, compile sdk = 30, target sdk = 27;
I placed the layout below in a Relative Relayout. I also used many combinations like translationZ, bringToFront etc. Nothing worked. The seekbar certainly not showing.
`<com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper
android:id="@id/seekbar_wrapper"
android:layout_below="@+id/setting_value"
android:layout_width="wrap_content"
android:layout_height="200dp">
<com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBar
android:id="@+id/camera_seekbar"
android:layout_width="0dp"
android:layout_height="0dp"
android:max="100"
android:maxWidth="15dp"
android:minWidth="10dp"
android:progress="30"
android:progressTint="@color/blue"
android:splitTrack="false"
android:thumb="@drawable/thumb_image"
android:thumbOffset="0dp"
android:thumbTint="@color/blue"
app:seekBarRotation="CW90" />
</com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper>`
Am having this error gradle project sync failed. Basic functionality (eg editing, debugging) will not work properly when am trying to install android studio version 3.1. Am new in android development
When the seekbar is in a LinearLayout with a specified weight, the drag handle is able to be dragged outside of the seekbar's layout bounds. Here is a sample repo that reproduces this issue 100% of the time: https://github.com/AOrobator/VerticalSeekbarBug
How to slide up and down with the middle point at 0 points
when i was using this library , i can see seekbar in the layout preview.
However, when i build and start with my application,
seekbar is invisible in the application running.
I follow all steps, and i think there is no reson do like that.
Here is my layout source
<org.opencv.android.JavaCameraView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/activity_surface_view" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="size"
android:textColor="#FFE400"
android:layout_marginTop="5dp"
android:layout_marginRight="3dp"
android:layout_toLeftOf="@+id/seekbar1"
/>
<com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper
android:id="@+id/seekbar1"
android:layout_width="wrap_content"
android:layout_height="140dp"
android:layout_alignParentRight="true"
android:layout_marginRight="20dp"
>
<com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBar
android:id="@+id/sizeseekvar"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_alignParentTop="true"
android:layout_marginLeft="18dp"
android:layout_marginStart="18dp"
android:layout_toEndOf="@+id/masklistview"
android:layout_toRightOf="@+id/masklistview"
android:splitTrack="false"
app:seekBarRotation="CW270"
android:max="150"
android:min="50"
android:progress="100"
/>
</com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="height"
android:textColor="#FFE400"
android:layout_marginTop="15dp"
android:layout_marginRight="3dp"
android:layout_below="@id/camerabutton"
android:layout_toLeftOf="@id/seekbar2"
/>
<com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper
android:id="@+id/seekbar2"
android:layout_width="wrap_content"
android:layout_height="140dp"
android:layout_alignLeft="@+id/seekbar1"
android:layout_alignParentBottom="true"
android:layout_alignStart="@+id/seekbar1">
<com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBar
android:id="@+id/heightseekvar"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_alignParentTop="true"
android:layout_marginLeft="18dp"
android:layout_marginStart="18dp"
android:layout_toEndOf="@+id/masklistview"
android:layout_toRightOf="@+id/masklistview"
android:max="150"
android:min="50"
android:progress="100"
android:splitTrack="false"
app:seekBarRotation="CW270" />
</com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper>
<ListView
android:id="@+id/masklistview"
android:layout_width="150dp"
android:layout_height="match_parent"
android:background="#ffffff"
>
</ListView>
<ImageButton
android:id="@+id/camerabutton"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="@android:color/transparent"
android:src="@drawable/camerabutton3"
android:layout_alignParentRight="true"
android:scaleType="fitXY"
android:layout_centerVertical="true"
/>
<com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBar
android:id="@+id/mySeekBar2"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_alignParentTop="true"
android:layout_marginEnd="32dp"
android:layout_marginRight="32dp"
android:layout_marginTop="41dp"
android:layout_toLeftOf="@+id/camerabutton"
android:layout_toStartOf="@+id/camerabutton"
android:splitTrack="false"
app:seekBarRotation="CW90" />
this is java source
SeekBar sizeseekbar,heightseekbar;
sizeseekbar=(SeekBar)findViewById(R.id.sizeseekvar);
sizeseekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@OverRide
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
sizeratio=progress/100;
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}
});
heightseekbar=(SeekBar)findViewById(R.id.heightseekvar);
heightseekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
Toast.makeText(getApplicationContext(),"동작??",Toast.LENGTH_LONG).show();
heightratio=progress/100;
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}
});
if you answer me , I will so appreciate it. Thank you
compile 'com.h6ah4i.android.widget.verticalseekbar:verticalseekbar:0.7.2'
errow
gradle project sync failed. basic functionality (eg. editing debugging) will not work properly
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.