Как изменить цвет seekbar android studio

SeekBar - это обычный слайдер, когда пользователь может передвигать ползунок пальцем на экране. Ползунок также можно двигать при помощи клавиш-стрелок.

SeekBar — это обычный слайдер, когда пользователь может передвигать ползунок пальцем на экране. Ползунок также можно двигать при помощи клавиш-стрелок.

Компонент SeekBar находится в разделе Widgets и наследуется от класса ProgressBar. В Android Studio 3.0 представлен в двух вариантах: SeekBar и SeekBar (Discrete).

Для отслеживания перемещения ползунка SeekBar необходимо реализовать интерфейс-слушатель SeekBar.OnSeekBarChangeListener с методами-заглушками:

  • onProgressChanged() — уведомляет об изменении положения ползунка;
  • onStartTrackingTouch() — уведомляет о том, что пользователь начал перемещать ползунок;
  • onStopTrackingTouch() — уведомляет о том, что пользователь закончил перемещать ползунок

Заготовка для Kotlin (на Java будет ниже в статье).


val seekBar: SeekBar = findViewById(R.id.seekBar)
seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener{
    override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
        // Ваш код
    }
    override fun onStartTrackingTouch(seekBar: SeekBar?) {    }
    override fun onStopTrackingTouch(seekBar: SeekBar?) {     }
})

Создадим новый проект и добавим компоненты SeekBar и TextView:


<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="ru.alexanderklimov.as23.MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:textSize="24sp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        tools:text="90"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="8dp"
        app:layout_constraintHorizontal_bias="0.501"/>

    <SeekBar
        android:id="@+id/seekBar"
        android:layout_width="368dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:max="100"
        android:progress="3"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView"/>

</android.support.constraint.ConstraintLayout>

Напишем код, чтобы в текстовом поле отображалось текущее значение ползунка после того, как пользователь отпустит его.



package ru.alexanderklimov.seekbar;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.SeekBar;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements SeekBar.OnSeekBarChangeListener {

    private TextView mTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final SeekBar seekBar = (SeekBar)findViewById(R.id.seekBar);
        seekBar.setOnSeekBarChangeListener(this);

        mTextView = (TextView)findViewById(R.id.textView);
        mTextView.setText("0");
    }

    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {

    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
        mTextView.setText(String.valueOf(seekBar.getProgress()));
    }
}

Ниже представлены вариант на Android 5.0 и старый вариант на Android 2.3 до появления Material Design, чтобы вы видели, как менялся интерфейс.

SeekBar

SeekBar

Меняем задний фон экрана

Усложним пример и будем менять цвет у фона экрана. Добавим на форму три компонента SeekBar:


<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/constrainLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="ru.alexanderklimov.as23.MainActivity">

    <SeekBar
        android:id="@+id/seekBar_Red"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:max="255"
        app:layout_constraintBottom_toTopOf="@+id/seekBar_Green"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        />

    <SeekBar
        android:id="@+id/seekBar_Green"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:max="255"
        app:layout_constraintBottom_toTopOf="@+id/seekBar_Blue"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/seekBar_Red"/>

    <SeekBar
        android:id="@+id/seekBar_Blue"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:max="255"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/seekBar_Green"/>

</android.support.constraint.ConstraintLayout>

Напишем код, меняющий значение цвета через значения ползунка:


package ru.alexanderklimov.seekbar;

import android.os.Bundle;
import android.support.constraint.ConstraintLayout;
import android.support.v7.app.AppCompatActivity;
import android.widget.SeekBar;

public class MainActivity extends AppCompatActivity {

    private SeekBar mRedSeekBar, mGreenSeekBar, mBlueSeekBar;
    private ConstraintLayout mScreenLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mScreenLayout = (ConstraintLayout) findViewById(R.id.constrainLayout);
        mRedSeekBar = (SeekBar) findViewById(R.id.seekBar_Red);
        mGreenSeekBar = (SeekBar) findViewById(R.id.seekBar_Green);
        mBlueSeekBar = (SeekBar) findViewById(R.id.seekBar_Blue);
        updateBackground();

        mRedSeekBar.setOnSeekBarChangeListener(seekBarChangeListener);
        mGreenSeekBar.setOnSeekBarChangeListener(seekBarChangeListener);
        mBlueSeekBar.setOnSeekBarChangeListener(seekBarChangeListener);
    }

    private SeekBar.OnSeekBarChangeListener seekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            updateBackground();
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

        }
    };

    private void updateBackground() {
        int redValue, greenValue, blueValue;
        redValue = mRedSeekBar.getProgress();
        greenValue = mGreenSeekBar.getProgress();
        blueValue = mBlueSeekBar.getProgress();
        // меняем фон через формат RGB
        mScreenLayout.setBackgroundColor(0xff000000 + redValue * 0x10000 + greenValue * 0x100
                + blueValue);
    }
}

Кот Рыжик попросил выставить цвет, наиболее подходящий цвету его шкурки. Я решил ему немного польстить:

SeekBar

SeekBar

Дополнительное чтение

Продвинутые примеры для слайдера

GitHub — lukelorusso/VerticalSeekBar: [AndroidLib] A nicer, redesigned and vertical SeekBar for Android 🎛

patryk1007/ShootingSlider — прикольный слайдер, напоминающий стрельбу из пушки в играх

bernaferrari/EmojiSlider: A slider widget rich in emoji and highly customisable. — слайдер с эмодзи-значками

MarcinMoskala/ArcSeekBar: Good looking curved Android SeekBar

AnderWeb/discreteSeekBar — интересная реализация

neild001/SeekArc — круговой ползунок. Пост автора.

Android Custom Seekbar with animation Example — ещё один пример кругового ползунка

GoodieBag/ProtractorView: A semicircular seekbar view for selecting angle from 0° to 180° — ползунок в виде полукруга.

oli107/material-range-bar: Android widget for selecting a range of values. — не совсем ползунок, позволяет выбрать диапазон значений.

lawloretienne/DiscreteSlider: A slider that allows a user to select a value at one of the specified tickmarks — слайдер для выбора значений.

akaita/CircularSeekBar: Simple custom Android View providing a Circular spin to SeekBars

Реклама

void
addChildrenForAccessibility(ArrayList<View> outChildren)

Adds the children of this View relevant for accessibility to the given list
as output.

void
addExtraDataToAccessibilityNodeInfo(AccessibilityNodeInfo info, String extraDataKey, Bundle arguments)

Adds extra data to an AccessibilityNodeInfo based on an explicit request for the
additional data.

void
addFocusables(ArrayList<View> views, int direction)

Add any focusable views that are descendants of this view (possibly
including this view if it is focusable itself) to views.

void
addFocusables(ArrayList<View> views, int direction, int focusableMode)

Adds any focusable views that are descendants of this view (possibly
including this view if it is focusable itself) to views.

void
addKeyboardNavigationClusters(Collection<View> views, int direction)

Adds any keyboard navigation cluster roots that are descendants of this view (possibly
including this view if it is a cluster root itself) to views.

void
addOnAttachStateChangeListener(View.OnAttachStateChangeListener listener)

Add a listener for attach state changes.

void
addOnLayoutChangeListener(View.OnLayoutChangeListener listener)

Add a listener that will be called when the bounds of the view change due to
layout processing.

void
addOnUnhandledKeyEventListener(View.OnUnhandledKeyEventListener listener)

Adds a listener which will receive unhandled KeyEvents.

void
addTouchables(ArrayList<View> views)

Add any touchable views that are descendants of this view (possibly
including this view if it is touchable itself) to views.

ViewPropertyAnimator
animate()

This method returns a ViewPropertyAnimator object, which can be used to animate
specific properties on this View.

void
announceForAccessibility(CharSequence text)

Convenience method for sending a AccessibilityEvent#TYPE_ANNOUNCEMENT
AccessibilityEvent to suggest that an accessibility service announce the
specified text to its users.

void
autofill(AutofillValue value)

Automatically fills the content of this view with the value.

void
autofill(SparseArray<AutofillValue> values)

Automatically fills the content of the virtual children within this view.

boolean
awakenScrollBars(int startDelay, boolean invalidate)

Trigger the scrollbars to draw.

boolean
awakenScrollBars(int startDelay)

Trigger the scrollbars to draw.

boolean
awakenScrollBars()

Trigger the scrollbars to draw.

void
bringToFront()

Change the view’s z order in the tree, so it’s on top of other sibling
views.

void
buildDrawingCache(boolean autoScale)


This method was deprecated
in API level 28.
The view drawing cache was largely made obsolete with the introduction of
hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache
layers are largely unnecessary and can easily result in a net loss in performance due to the
cost of creating and updating the layer. In the rare cases where caching layers are useful,
such as for alpha animations, setLayerType(int, android.graphics.Paint) handles this with hardware
rendering. For software-rendered snapshots of a small part of the View hierarchy or
individual Views it is recommended to create a Canvas from either a Bitmap or
Picture and call draw(android.graphics.Canvas) on the View. However these
software-rendered usages are discouraged and have compatibility issues with hardware-only
rendering features such as Config.HARDWARE
bitmaps, real-time shadows, and outline clipping. For screenshots of the UI for feedback
reports or unit testing the PixelCopy API is recommended.

void
buildDrawingCache()


This method was deprecated
in API level 28.
The view drawing cache was largely made obsolete with the introduction of
hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache
layers are largely unnecessary and can easily result in a net loss in performance due to the
cost of creating and updating the layer. In the rare cases where caching layers are useful,
such as for alpha animations, setLayerType(int, android.graphics.Paint) handles this with hardware
rendering. For software-rendered snapshots of a small part of the View hierarchy or
individual Views it is recommended to create a Canvas from either a Bitmap or
Picture and call draw(android.graphics.Canvas) on the View. However these
software-rendered usages are discouraged and have compatibility issues with hardware-only
rendering features such as Config.HARDWARE
bitmaps, real-time shadows, and outline clipping. For screenshots of the UI for feedback
reports or unit testing the PixelCopy API is recommended.

void
buildLayer()

Forces this view’s layer to be created and this view to be rendered
into its layer.

boolean
callOnClick()

Directly call any attached OnClickListener.

boolean
canResolveLayoutDirection()

Check if layout direction resolution can be done.

boolean
canResolveTextAlignment()

Check if text alignment resolution can be done.

boolean
canResolveTextDirection()

Check if text direction resolution can be done.

boolean
canScrollHorizontally(int direction)

Check if this view can be scrolled horizontally in a certain direction.

boolean
canScrollVertically(int direction)

Check if this view can be scrolled vertically in a certain direction.

final

void
cancelDragAndDrop()

Cancels an ongoing drag and drop operation.

void
cancelLongPress()

Cancels a pending long press.

final

void
cancelPendingInputEvents()

Cancel any deferred high-level input events that were previously posted to the event queue.

boolean
checkInputConnectionProxy(View view)

Called by the InputMethodManager
when a view who is not the current
input connection target is trying to make a call on the manager.

void
clearAnimation()

Cancels any animations for this view.

void
clearFocus()

Called when this view wants to give up focus.

void
clearViewTranslationCallback()

Clear the ViewTranslationCallback from this view.

static

int
combineMeasuredStates(int curState, int newState)

Merge two states as returned by getMeasuredState().

int
computeHorizontalScrollExtent()

Compute the horizontal extent of the horizontal scrollbar’s thumb
within the horizontal range.

int
computeHorizontalScrollOffset()

Compute the horizontal offset of the horizontal scrollbar’s thumb
within the horizontal range.

int
computeHorizontalScrollRange()

Compute the horizontal range that the horizontal scrollbar
represents.

void
computeScroll()

Called by a parent to request that a child update its values for mScrollX
and mScrollY if necessary.

WindowInsets
computeSystemWindowInsets(WindowInsets in, Rect outLocalInsets)

Compute insets that should be consumed by this view and the ones that should propagate
to those under it.

int
computeVerticalScrollExtent()

Compute the vertical extent of the vertical scrollbar’s thumb
within the vertical range.

int
computeVerticalScrollOffset()

Compute the vertical offset of the vertical scrollbar’s thumb
within the horizontal range.

int
computeVerticalScrollRange()

Compute the vertical range that the vertical scrollbar represents.

AccessibilityNodeInfo
createAccessibilityNodeInfo()

Returns an AccessibilityNodeInfo representing this view from the
point of view of an AccessibilityService.

void
createContextMenu(ContextMenu menu)

Show the context menu for this view.

void
destroyDrawingCache()


This method was deprecated
in API level 28.
The view drawing cache was largely made obsolete with the introduction of
hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache
layers are largely unnecessary and can easily result in a net loss in performance due to the
cost of creating and updating the layer. In the rare cases where caching layers are useful,
such as for alpha animations, setLayerType(int, android.graphics.Paint) handles this with hardware
rendering. For software-rendered snapshots of a small part of the View hierarchy or
individual Views it is recommended to create a Canvas from either a Bitmap or
Picture and call draw(android.graphics.Canvas) on the View. However these
software-rendered usages are discouraged and have compatibility issues with hardware-only
rendering features such as Config.HARDWARE
bitmaps, real-time shadows, and outline clipping. For screenshots of the UI for feedback
reports or unit testing the PixelCopy API is recommended.

WindowInsets
dispatchApplyWindowInsets(WindowInsets insets)

Request to apply the given window insets to this view or another view in its subtree.

boolean
dispatchCapturedPointerEvent(MotionEvent event)

Pass a captured pointer event down to the focused view.

void
dispatchConfigurationChanged(Configuration newConfig)

Dispatch a notification about a resource configuration change down
the view hierarchy.

void
dispatchCreateViewTranslationRequest(Map<AutofillId, long[]> viewIds, int[] supportedFormats, TranslationCapability capability, List<ViewTranslationRequest> requests)

Dispatch to collect the ViewTranslationRequests for translation purpose by traversing
the hierarchy when the app requests ui translation.

void
dispatchDisplayHint(int hint)

Dispatch a hint about whether this view is displayed.

boolean
dispatchDragEvent(DragEvent event)

Detects if this View is enabled and has a drag event listener.

void
dispatchDraw(Canvas canvas)

Called by draw to draw the child views.

void
dispatchDrawableHotspotChanged(float x, float y)

Dispatches drawableHotspotChanged to all of this View’s children.

void
dispatchFinishTemporaryDetach()

Dispatch onFinishTemporaryDetach() to this View and its direct children if this is
a container View.

boolean
dispatchGenericFocusedEvent(MotionEvent event)

Dispatch a generic motion event to the currently focused view.

boolean
dispatchGenericMotionEvent(MotionEvent event)

Dispatch a generic motion event.

boolean
dispatchGenericPointerEvent(MotionEvent event)

Dispatch a generic motion event to the view under the first pointer.

boolean
dispatchHoverEvent(MotionEvent event)

Dispatch a hover event.

boolean
dispatchKeyEvent(KeyEvent event)

Dispatch a key event to the next view on the focus path.

boolean
dispatchKeyEventPreIme(KeyEvent event)

Dispatch a key event before it is processed by any input method
associated with the view hierarchy.

boolean
dispatchKeyShortcutEvent(KeyEvent event)

Dispatches a key shortcut event.

boolean
dispatchNestedFling(float velocityX, float velocityY, boolean consumed)

Dispatch a fling to a nested scrolling parent.

boolean
dispatchNestedPreFling(float velocityX, float velocityY)

Dispatch a fling to a nested scrolling parent before it is processed by this view.

boolean
dispatchNestedPrePerformAccessibilityAction(int action, Bundle arguments)

Report an accessibility action to this view’s parents for delegated processing.

boolean
dispatchNestedPreScroll(int dx, int dy, int[] consumed, int[] offsetInWindow)

Dispatch one step of a nested scroll in progress before this view consumes any portion of it.

boolean
dispatchNestedScroll(int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int[] offsetInWindow)

Dispatch one step of a nested scroll in progress.

void
dispatchPointerCaptureChanged(boolean hasCapture)

boolean
dispatchPopulateAccessibilityEvent(AccessibilityEvent event)

Dispatches an AccessibilityEvent to the View first and then
to its children for adding their text content to the event.

void
dispatchProvideAutofillStructure(ViewStructure structure, int flags)

Dispatches creation of a ViewStructures for autofill purposes down the hierarchy,
when an Assist structure is being created as part of an autofill request.

void
dispatchProvideStructure(ViewStructure structure)

Dispatch creation of ViewStructure down the hierarchy.

void
dispatchRestoreInstanceState(SparseArray<Parcelable> container)

Called by restoreHierarchyState(android.util.SparseArray) to retrieve the
state for this view and its children.

void
dispatchSaveInstanceState(SparseArray<Parcelable> container)

Called by saveHierarchyState(android.util.SparseArray) to store the state for
this view and its children.

void
dispatchScrollCaptureSearch(Rect localVisibleRect, Point windowOffset, Consumer<ScrollCaptureTarget> targets)

Dispatch a scroll capture search request down the view hierarchy.

void
dispatchSetActivated(boolean activated)

Dispatch setActivated to all of this View’s children.

void
dispatchSetPressed(boolean pressed)

Dispatch setPressed to all of this View’s children.

void
dispatchSetSelected(boolean selected)

Dispatch setSelected to all of this View’s children.

void
dispatchStartTemporaryDetach()

Dispatch onStartTemporaryDetach() to this View and its direct children if this is
a container View.

void
dispatchSystemUiVisibilityChanged(int visibility)


This method was deprecated
in API level 30.
Use WindowInsets#isVisible(int) to find out about system bar visibilities
by setting a OnApplyWindowInsetsListener on this view.

boolean
dispatchTouchEvent(MotionEvent event)

Pass the touch screen motion event down to the target view, or this
view if it is the target.

boolean
dispatchTrackballEvent(MotionEvent event)

Pass a trackball motion event down to the focused view.

boolean
dispatchUnhandledMove(View focused, int direction)

This method is the last chance for the focused view and its ancestors to
respond to an arrow key.

void
dispatchVisibilityChanged(View changedView, int visibility)

Dispatch a view visibility change down the view hierarchy.

void
dispatchWindowFocusChanged(boolean hasFocus)

Called when the window containing this view gains or loses window focus.

void
dispatchWindowInsetsAnimationEnd(WindowInsetsAnimation animation)

Dispatches WindowInsetsAnimation.Callback#onEnd(WindowInsetsAnimation)
when Window Insets animation ends.

void
dispatchWindowInsetsAnimationPrepare(WindowInsetsAnimation animation)

Dispatches WindowInsetsAnimation.Callback#onPrepare(WindowInsetsAnimation)
when Window Insets animation is being prepared.

WindowInsets
dispatchWindowInsetsAnimationProgress(WindowInsets insets, List<WindowInsetsAnimation> runningAnimations)

Dispatches WindowInsetsAnimation.Callback#onProgress(WindowInsets, List)
when Window Insets animation makes progress.

WindowInsetsAnimation.Bounds
dispatchWindowInsetsAnimationStart(WindowInsetsAnimation animation, WindowInsetsAnimation.Bounds bounds)

Dispatches WindowInsetsAnimation.Callback#onStart(WindowInsetsAnimation, Bounds)
when Window Insets animation is started.

void
dispatchWindowSystemUiVisiblityChanged(int visible)


This method was deprecated
in API level 30.
SystemUiVisibility flags are deprecated. Use WindowInsetsController
instead.

void
dispatchWindowVisibilityChanged(int visibility)

Dispatch a window visibility change down the view hierarchy.

void
draw(Canvas canvas)

Manually render this view (and all of its children) to the given Canvas.

void
drawableHotspotChanged(float x, float y)

This function is called whenever the view hotspot changes and needs to
be propagated to drawables or child views managed by the view.

void
drawableStateChanged()

This function is called whenever the state of the view changes in such
a way that it impacts the state of drawables being shown.

View
findFocus()

Find the view in the hierarchy rooted at this view that currently has
focus.

final

OnBackInvokedDispatcher
findOnBackInvokedDispatcher()

Walk up the View hierarchy to find the nearest OnBackInvokedDispatcher.

final
<T extends View>
T

findViewById(int id)

Finds the first descendant view with the given ID, the view itself if
the ID matches getId(), or null if the ID is invalid
(< 0) or there is no matching view in the hierarchy.

final
<T extends View>
T

findViewWithTag(Object tag)

Look for a child view with the given tag.

void
findViewsWithText(ArrayList<View> outViews, CharSequence searched, int flags)

Finds the Views that contain given text.

boolean
fitSystemWindows(Rect insets)


This method was deprecated
in API level 20.
As of API 20 use dispatchApplyWindowInsets(android.view.WindowInsets) to apply
insets to views. Views should override onApplyWindowInsets(android.view.WindowInsets) or use
setOnApplyWindowInsetsListener(android.view.View.OnApplyWindowInsetsListener)
to implement handling their own insets.

View
focusSearch(int direction)

Find the nearest view in the specified direction that can take focus.

void
forceHasOverlappingRendering(boolean hasOverlappingRendering)

Sets the behavior for overlapping rendering for this view (see hasOverlappingRendering() for more details on this behavior).

void
forceLayout()

Forces this view to be laid out during the next layout pass.

boolean
gatherTransparentRegion(Region region)

This is used by the ViewRoot to perform an optimization when
the view hierarchy contains one or several SurfaceView.

void
generateDisplayHash(String hashAlgorithm, Rect bounds, Executor executor, DisplayHashResultCallback callback)

Called to generate a DisplayHash for this view.

static

int
generateViewId()

Generate a value suitable for use in setId(int).

CharSequence
getAccessibilityClassName()

Return the class name of this object to be used for accessibility purposes.

View.AccessibilityDelegate
getAccessibilityDelegate()

Returns the delegate for implementing accessibility support via
composition.

int
getAccessibilityLiveRegion()

Gets the live region mode for this View.

AccessibilityNodeProvider
getAccessibilityNodeProvider()

Gets the provider for managing a virtual view hierarchy rooted at this View
and reported to AccessibilityServices
that explore the window content.

CharSequence
getAccessibilityPaneTitle()

Get the title of the pane for purposes of accessibility.

int
getAccessibilityTraversalAfter()

Gets the id of a view after which this one is visited in accessibility traversal.

int
getAccessibilityTraversalBefore()

Gets the id of a view before which this one is visited in accessibility traversal.

float
getAlpha()

The opacity of the view.

Animation
getAnimation()

Get the animation currently associated with this view.

Matrix
getAnimationMatrix()

Return the current transformation matrix of the view.

IBinder
getApplicationWindowToken()

Retrieve a unique token identifying the top-level «real» window of
the window that this view is attached to.

int[]
getAttributeResolutionStack(int attribute)

Returns the ordered list of resource ID that are considered when resolving attribute values
for this View.

Map<Integer, Integer>
getAttributeSourceResourceMap()

Returns the mapping of attribute resource ID to source resource ID where the attribute value
was set.

String[]
getAutofillHints()

Gets the hints that help an AutofillService determine how
to autofill the view with the user’s data.

final

AutofillId
getAutofillId()

Gets the unique, logical identifier of this view in the activity, for autofill purposes.

int
getAutofillType()

Describes the autofill type of this view, so an
AutofillService can create the proper AutofillValue
when autofilling the view.

AutofillValue
getAutofillValue()

Gets the View‘s current autofill value.

Drawable
getBackground()

Gets the background drawable

BlendMode
getBackgroundTintBlendMode()

Return the blending mode used to apply the tint to the background
drawable, if specified.

ColorStateList
getBackgroundTintList()

Return the tint applied to the background drawable, if specified.

PorterDuff.Mode
getBackgroundTintMode()

Return the blending mode used to apply the tint to the background
drawable, if specified.

int
getBaseline()

Return the offset of the widget’s text baseline from the widget’s top
boundary.

final

int
getBottom()

Bottom position of this view relative to its parent.

float
getBottomFadingEdgeStrength()

Returns the strength, or intensity, of the bottom faded edge.

int
getBottomPaddingOffset()

Amount by which to extend the bottom fading region.

float
getCameraDistance()

Gets the distance along the Z axis from the camera to this view.

boolean
getClipBounds(Rect outRect)

Populates an output rectangle with the clip bounds of the view,
returning true if successful or false if the view’s
clip bounds are null.

Rect
getClipBounds()

Returns a copy of the current clipBounds.

final

boolean
getClipToOutline()

Returns whether the Outline should be used to clip the contents of the View.

final

ContentCaptureSession
getContentCaptureSession()

Gets the session used to notify content capture events.

CharSequence
getContentDescription()

Returns the View‘s content description.

final

Context
getContext()

Returns the context the view is running in, through which it can
access the current theme, resources, etc.

ContextMenu.ContextMenuInfo
getContextMenuInfo()

Views should implement this if they have extra information to associate
with the context menu.

final

boolean
getDefaultFocusHighlightEnabled()

Returns whether this View should use a default focus highlight when it gets focused but
doesn’t have R.attr.state_focused defined in its background.

static

int
getDefaultSize(int size, int measureSpec)

Utility to return a default size.

Display
getDisplay()

Gets the logical display to which the view’s window has been attached.

final

int[]
getDrawableState()

Return an array of resource IDs of the drawable states representing the
current state of the view.

Bitmap
getDrawingCache()


This method was deprecated
in API level 28.
The view drawing cache was largely made obsolete with the introduction of
hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache
layers are largely unnecessary and can easily result in a net loss in performance due to the
cost of creating and updating the layer. In the rare cases where caching layers are useful,
such as for alpha animations, setLayerType(int, android.graphics.Paint) handles this with hardware
rendering. For software-rendered snapshots of a small part of the View hierarchy or
individual Views it is recommended to create a Canvas from either a Bitmap or
Picture and call draw(android.graphics.Canvas) on the View. However these
software-rendered usages are discouraged and have compatibility issues with hardware-only
rendering features such as Config.HARDWARE
bitmaps, real-time shadows, and outline clipping. For screenshots of the UI for feedback
reports or unit testing the PixelCopy API is recommended.

Bitmap
getDrawingCache(boolean autoScale)


This method was deprecated
in API level 28.
The view drawing cache was largely made obsolete with the introduction of
hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache
layers are largely unnecessary and can easily result in a net loss in performance due to the
cost of creating and updating the layer. In the rare cases where caching layers are useful,
such as for alpha animations, setLayerType(int, android.graphics.Paint) handles this with hardware
rendering. For software-rendered snapshots of a small part of the View hierarchy or
individual Views it is recommended to create a Canvas from either a Bitmap or
Picture and call draw(android.graphics.Canvas) on the View. However these
software-rendered usages are discouraged and have compatibility issues with hardware-only
rendering features such as Config.HARDWARE
bitmaps, real-time shadows, and outline clipping. For screenshots of the UI for feedback
reports or unit testing the PixelCopy API is recommended.

int
getDrawingCacheBackgroundColor()


This method was deprecated
in API level 28.
The view drawing cache was largely made obsolete with the introduction of
hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache
layers are largely unnecessary and can easily result in a net loss in performance due to the
cost of creating and updating the layer. In the rare cases where caching layers are useful,
such as for alpha animations, setLayerType(int, android.graphics.Paint) handles this with hardware
rendering. For software-rendered snapshots of a small part of the View hierarchy or
individual Views it is recommended to create a Canvas from either a Bitmap or
Picture and call draw(android.graphics.Canvas) on the View. However these
software-rendered usages are discouraged and have compatibility issues with hardware-only
rendering features such as Config.HARDWARE
bitmaps, real-time shadows, and outline clipping. For screenshots of the UI for feedback
reports or unit testing the PixelCopy API is recommended.

int
getDrawingCacheQuality()


This method was deprecated
in API level 28.
The view drawing cache was largely made obsolete with the introduction of
hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache
layers are largely unnecessary and can easily result in a net loss in performance due to the
cost of creating and updating the layer. In the rare cases where caching layers are useful,
such as for alpha animations, setLayerType(int, android.graphics.Paint) handles this with hardware
rendering. For software-rendered snapshots of a small part of the View hierarchy or
individual Views it is recommended to create a Canvas from either a Bitmap or
Picture and call draw(android.graphics.Canvas) on the View. However these
software-rendered usages are discouraged and have compatibility issues with hardware-only
rendering features such as Config.HARDWARE
bitmaps, real-time shadows, and outline clipping. For screenshots of the UI for feedback
reports or unit testing the PixelCopy API is recommended.

void
getDrawingRect(Rect outRect)

Return the visible drawing bounds of your view.

long
getDrawingTime()

Return the time at which the drawing of the view hierarchy started.

float
getElevation()

The base elevation of this view relative to its parent, in pixels.

int
getExplicitStyle()

Returns the resource ID for the style specified using style="..." in the
AttributeSet‘s backing XML element or Resources#ID_NULL otherwise if not
specified or otherwise not applicable.

boolean
getFilterTouchesWhenObscured()

Gets whether the framework should discard touches when the view’s
window is obscured by another visible window at the touched location.

boolean
getFitsSystemWindows()

Check for state of setFitsSystemWindows(boolean).

int
getFocusable()

Returns the focusable setting for this view.

ArrayList<View>
getFocusables(int direction)

Find and return all focusable views that are descendants of this view,
possibly including this view if it is focusable itself.

void
getFocusedRect(Rect r)

When a view has focus and the user navigates away from it, the next view is searched for
starting from the rectangle filled in by this method.

Drawable
getForeground()

Returns the drawable used as the foreground of this View.

int
getForegroundGravity()

Describes how the foreground is positioned.

BlendMode
getForegroundTintBlendMode()

Return the blending mode used to apply the tint to the foreground
drawable, if specified.

ColorStateList
getForegroundTintList()

Return the tint applied to the foreground drawable, if specified.

PorterDuff.Mode
getForegroundTintMode()

Return the blending mode used to apply the tint to the foreground
drawable, if specified.

final

boolean
getGlobalVisibleRect(Rect r)

Sets r to the coordinates of the non-clipped area of this view in
the coordinate space of the view’s root view.

boolean
getGlobalVisibleRect(Rect r, Point globalOffset)

Sets r to the coordinates of the non-clipped area of this view in
the coordinate space of the view’s root view.

Handler
getHandler()

float
getHandwritingBoundsOffsetBottom()

Return the amount of offset applied to the bottom edge of this view’s handwriting bounds, in
the unit of pixel.

float
getHandwritingBoundsOffsetLeft()

Return the amount of offset applied to the left edge of this view’s handwriting bounds,
in the unit of pixel.

float
getHandwritingBoundsOffsetRight()

Return the amount of offset applied to the right edge of this view’s handwriting bounds, in
the unit of pixel.

float
getHandwritingBoundsOffsetTop()

Return the amount of offset applied to the top edge of this view’s handwriting bounds,
in the unit of pixel.

HandwritingDelegateConfiguration
getHandwritingDelegateConfiguration()

If this view has been configured as a handwriting initiation delegate, returns the delegate
configuration.

final

boolean
getHasOverlappingRendering()

Returns the value for overlapping rendering that is used internally.

final

int
getHeight()

Return the height of your view.

void
getHitRect(Rect outRect)

Hit rectangle in parent’s coordinates

int
getHorizontalFadingEdgeLength()

Returns the size of the horizontal faded edges used to indicate that more
content in this view is visible.

int
getHorizontalScrollbarHeight()

Returns the height of the horizontal scrollbar.

Drawable
getHorizontalScrollbarThumbDrawable()

Returns the currently configured Drawable for the thumb of the horizontal scroll bar if it
exists, null otherwise.

Drawable
getHorizontalScrollbarTrackDrawable()

Returns the currently configured Drawable for the track of the horizontal scroll bar if it
exists, null otherwise.

int
getId()

Returns this view’s identifier.

int
getImportantForAccessibility()

Gets the mode for determining whether this View is important for accessibility.

int
getImportantForAutofill()

Gets the mode for determining whether this view is important for autofill.

int
getImportantForContentCapture()

Gets the mode for determining whether this view is important for content capture.

boolean
getKeepScreenOn()

Returns whether the screen should remain on, corresponding to the current
value of KEEP_SCREEN_ON.

KeyEvent.DispatcherState
getKeyDispatcherState()

Return the global KeyEvent.DispatcherState
for this view’s window.

int
getLabelFor()

Gets the id of a view for which this view serves as a label for
accessibility purposes.

int
getLayerType()

Indicates what type of layer is currently associated with this view.

int
getLayoutDirection()

Returns the resolved layout direction for this view.

ViewGroup.LayoutParams
getLayoutParams()

Get the LayoutParams associated with this view.

final

int
getLeft()

Left position of this view relative to its parent.

float
getLeftFadingEdgeStrength()

Returns the strength, or intensity, of the left faded edge.

int
getLeftPaddingOffset()

Amount by which to extend the left fading region.

final

boolean
getLocalVisibleRect(Rect r)

Sets r to the coordinates of the non-clipped area of this view
relative to the top left corner of the view.

void
getLocationInSurface(int[] location)

Gets the coordinates of this view in the coordinate space of the
Surface that contains the view.

void
getLocationInWindow(int[] outLocation)

Gets the coordinates of this view in the coordinate space of the window
that contains the view, irrespective of system decorations.

void
getLocationOnScreen(int[] outLocation)

Gets the coordinates of this view in the coordinate space of the device
screen, irrespective of system decorations and whether the system is in
multi-window mode.

Matrix
getMatrix()

The transform matrix of this view, which is calculated based on the current
rotation, scale, and pivot properties.

final

int
getMeasuredHeight()

Like getMeasuredHeightAndState(), but only returns the
raw height component (that is the result is masked by
MEASURED_SIZE_MASK).

final

int
getMeasuredHeightAndState()

Return the full height measurement information for this view as computed
by the most recent call to measure(int, int).

final

int
getMeasuredState()

Return only the state bits of getMeasuredWidthAndState()
and getMeasuredHeightAndState(), combined into one integer.

final

int
getMeasuredWidth()

Like getMeasuredWidthAndState(), but only returns the
raw width component (that is the result is masked by
MEASURED_SIZE_MASK).

final

int
getMeasuredWidthAndState()

Return the full width measurement information for this view as computed
by the most recent call to measure(int, int).

int
getMinimumHeight()

Returns the minimum height of the view.

int
getMinimumWidth()

Returns the minimum width of the view.

int
getNextClusterForwardId()

Gets the id of the root of the next keyboard navigation cluster.

int
getNextFocusDownId()

Gets the id of the view to use when the next focus is FOCUS_DOWN.

int
getNextFocusForwardId()

Gets the id of the view to use when the next focus is FOCUS_FORWARD.

int
getNextFocusLeftId()

Gets the id of the view to use when the next focus is FOCUS_LEFT.

int
getNextFocusRightId()

Gets the id of the view to use when the next focus is FOCUS_RIGHT.

int
getNextFocusUpId()

Gets the id of the view to use when the next focus is FOCUS_UP.

View.OnFocusChangeListener
getOnFocusChangeListener()

Returns the focus-change callback registered for this view.

int
getOutlineAmbientShadowColor()

ViewOutlineProvider
getOutlineProvider()

Returns the current ViewOutlineProvider of the view, which generates the Outline
that defines the shape of the shadow it casts, and enables outline clipping.

int
getOutlineSpotShadowColor()

int
getOverScrollMode()

Returns the over-scroll mode for this view.

ViewOverlay
getOverlay()

Returns the overlay for this view, creating it if it does not yet exist.

int
getPaddingBottom()

Returns the bottom padding of this view.

int
getPaddingEnd()

Returns the end padding of this view depending on its resolved layout direction.

int
getPaddingLeft()

Returns the left padding of this view.

int
getPaddingRight()

Returns the right padding of this view.

int
getPaddingStart()

Returns the start padding of this view depending on its resolved layout direction.

int
getPaddingTop()

Returns the top padding of this view.

final

ViewParent
getParent()

Gets the parent of this view.

ViewParent
getParentForAccessibility()

Gets the parent for accessibility purposes.

float
getPivotX()

The x location of the point around which the view is rotated
and scaled.

float
getPivotY()

The y location of the point around which the view is rotated
and scaled.

PointerIcon
getPointerIcon()

Gets the pointer icon for the current view.

final

List<Rect>
getPreferKeepClearRects()

String[]
getReceiveContentMimeTypes()

Returns the MIME types accepted by performReceiveContent(ContentInfo) for this view, as
configured via setOnReceiveContentListener(String[], OnReceiveContentListener).

Resources
getResources()

Returns the resources associated with this view.

final

boolean
getRevealOnFocusHint()

Returns this view’s preference for reveal behavior when it gains focus.

final

int
getRight()

Right position of this view relative to its parent.

float
getRightFadingEdgeStrength()

Returns the strength, or intensity, of the right faded edge.

int
getRightPaddingOffset()

Amount by which to extend the right fading region.

AttachedSurfaceControl
getRootSurfaceControl()

The AttachedSurfaceControl itself is not a View, it is just the interface to the
windowing-system object that contains the entire view hierarchy.

View
getRootView()

Finds the topmost view in the current view hierarchy.

WindowInsets
getRootWindowInsets()

Provide original WindowInsets that are dispatched to the view hierarchy.

float
getRotation()

The degrees that the view is rotated around the pivot point.

float
getRotationX()

The degrees that the view is rotated around the horizontal axis through the pivot point.

float
getRotationY()

The degrees that the view is rotated around the vertical axis through the pivot point.

float
getScaleX()

The amount that the view is scaled in x around the pivot point, as a proportion of
the view’s unscaled width.

float
getScaleY()

The amount that the view is scaled in y around the pivot point, as a proportion of
the view’s unscaled height.

int
getScrollBarDefaultDelayBeforeFade()

Returns the delay before scrollbars fade.

int
getScrollBarFadeDuration()

Returns the scrollbar fade duration.

int
getScrollBarSize()

Returns the scrollbar size.

int
getScrollBarStyle()

Returns the current scrollbar style.

int
getScrollCaptureHint()

Returns the current scroll capture hint for this view.

int
getScrollIndicators()

Returns a bitmask representing the enabled scroll indicators.

final

int
getScrollX()

Return the scrolled left position of this view.

final

int
getScrollY()

Return the scrolled top position of this view.

int
getSolidColor()

Override this if your view is known to always be drawn on top of a solid color background,
and needs to draw fading edges.

int
getSourceLayoutResId()

A View can be inflated from an XML layout.

final

CharSequence
getStateDescription()

Returns the View‘s state description.

StateListAnimator
getStateListAnimator()

Returns the current StateListAnimator if exists.

int
getSuggestedMinimumHeight()

Returns the suggested minimum height that the view should use.

int
getSuggestedMinimumWidth()

Returns the suggested minimum width that the view should use.

List<Rect>
getSystemGestureExclusionRects()

Retrieve the list of areas within this view’s post-layout coordinate space where the system
should not intercept touch or other pointing device gestures.

int
getSystemUiVisibility()


This method was deprecated
in API level 30.
SystemUiVisibility flags are deprecated. Use WindowInsetsController
instead.

Object
getTag()

Returns this view’s tag.

Object
getTag(int key)

Returns the tag associated with this view and the specified key.

int
getTextAlignment()

Return the resolved text alignment.

int
getTextDirection()

Return the resolved text direction.

CharSequence
getTooltipText()

Returns the view’s tooltip text.

final

int
getTop()

Top position of this view relative to its parent.

float
getTopFadingEdgeStrength()

Returns the strength, or intensity, of the top faded edge.

int
getTopPaddingOffset()

Amount by which to extend the top fading region.

TouchDelegate
getTouchDelegate()

Gets the TouchDelegate for this View.

ArrayList<View>
getTouchables()

Find and return all touchable views that are descendants of this view,
possibly including this view if it is touchable itself.

float
getTransitionAlpha()

This property is intended only for use by the Fade transition, which animates
it to produce a visual translucency that does not side-effect (or get affected
by) the real alpha property.

String
getTransitionName()

Returns the name of the View to be used to identify Views in Transitions.

float
getTranslationX()

The horizontal location of this view relative to its left position.

float
getTranslationY()

The vertical location of this view relative to its top position.

float
getTranslationZ()

The depth location of this view relative to its elevation.

long
getUniqueDrawingId()

Get the identifier used for this view by the drawing system.

int
getVerticalFadingEdgeLength()

Returns the size of the vertical faded edges used to indicate that more
content in this view is visible.

int
getVerticalScrollbarPosition()

Drawable
getVerticalScrollbarThumbDrawable()

Returns the currently configured Drawable for the thumb of the vertical scroll bar if it
exists, null otherwise.

Drawable
getVerticalScrollbarTrackDrawable()

Returns the currently configured Drawable for the track of the vertical scroll bar if it
exists, null otherwise.

int
getVerticalScrollbarWidth()

Returns the width of the vertical scrollbar.

ViewTranslationResponse
getViewTranslationResponse()

Returns the ViewTranslationResponse associated with this view.

ViewTreeObserver
getViewTreeObserver()

Returns the ViewTreeObserver for this view’s hierarchy.

int
getVisibility()

Returns the visibility status for this view.

final

int
getWidth()

Return the width of your view.

int
getWindowAttachCount()

WindowId
getWindowId()

Retrieve the WindowId for the window this view is
currently attached to.

WindowInsetsController
getWindowInsetsController()

Retrieves the single WindowInsetsController of the window this view is attached to.

int
getWindowSystemUiVisibility()


This method was deprecated
in API level 30.
SystemUiVisibility flags are deprecated. Use WindowInsetsController
instead.

IBinder
getWindowToken()

Retrieve a unique token identifying the window this view is attached to.

int
getWindowVisibility()

Returns the current visibility of the window this view is attached to
(either GONE, INVISIBLE, or VISIBLE).

void
getWindowVisibleDisplayFrame(Rect outRect)

Retrieve the overall visible display size in which the window this view is
attached to has been positioned in.

float
getX()

The visual x position of this view, in pixels.

float
getY()

The visual y position of this view, in pixels.

float
getZ()

The visual z position of this view, in pixels.

boolean
hasExplicitFocusable()

Returns true if this view is focusable or if it contains a reachable View
for which hasExplicitFocusable() returns true.

boolean
hasFocus()

Returns true if this view has focus itself, or is the ancestor of the
view that has focus.

boolean
hasFocusable()

Returns true if this view is focusable or if it contains a reachable View
for which hasFocusable() returns true.

boolean
hasNestedScrollingParent()

Returns true if this view has a nested scrolling parent.

boolean
hasOnClickListeners()

Return whether this view has an attached OnClickListener.

boolean
hasOnLongClickListeners()

Return whether this view has an attached OnLongClickListener.

boolean
hasOverlappingRendering()

Returns whether this View has content which overlaps.

boolean
hasPointerCapture()

Checks pointer capture status.

boolean
hasTransientState()

Indicates whether the view is currently tracking transient state that the
app should not need to concern itself with saving and restoring, but that
the framework should take special note to preserve when possible.

boolean
hasWindowFocus()

Returns true if this view is in a window that currently has window focus.

static

View
inflate(Context context, int resource, ViewGroup root)

Inflate a view from an XML resource.

void
invalidate()

Invalidate the whole view.

void
invalidate(Rect dirty)


This method was deprecated
in API level 28.
The switch to hardware accelerated rendering in API 14 reduced
the importance of the dirty rectangle. In API 21 the given rectangle is
ignored entirely in favor of an internally-calculated area instead.
Because of this, clients are encouraged to just call invalidate().

void
invalidate(int l, int t, int r, int b)


This method was deprecated
in API level 28.
The switch to hardware accelerated rendering in API 14 reduced
the importance of the dirty rectangle. In API 21 the given rectangle is
ignored entirely in favor of an internally-calculated area instead.
Because of this, clients are encouraged to just call invalidate().

void
invalidateDrawable(Drawable drawable)

Invalidates the specified Drawable.

void
invalidateOutline()

Called to rebuild this View’s Outline from its outline provider

boolean
isAccessibilityDataPrivate()

Whether this view should restrict accessibility service access only to services that have the
AccessibilityServiceInfo.isAccessibilityTool() property
set to true.

boolean
isAccessibilityFocused()

Returns whether this View is accessibility focused.

boolean
isAccessibilityHeading()

Gets whether this view is a heading for accessibility purposes.

boolean
isActivated()

Indicates the activation state of this view.

boolean
isAttachedToWindow()

Returns true if this view is currently attached to a window.

boolean
isAutoHandwritingEnabled()

Return whether the View allows automatic handwriting initiation.

boolean
isClickable()

Indicates whether this view reacts to click events or not.

boolean
isContextClickable()

Indicates whether this view reacts to context clicks or not.

boolean
isCredential()

Gets the mode for determining whether this view is a credential.

boolean
isDirty()

True if this view has changed since the last time being drawn.

boolean
isDrawingCacheEnabled()


This method was deprecated
in API level 28.
The view drawing cache was largely made obsolete with the introduction of
hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache
layers are largely unnecessary and can easily result in a net loss in performance due to the
cost of creating and updating the layer. In the rare cases where caching layers are useful,
such as for alpha animations, setLayerType(int, android.graphics.Paint) handles this with hardware
rendering. For software-rendered snapshots of a small part of the View hierarchy or
individual Views it is recommended to create a Canvas from either a Bitmap or
Picture and call draw(android.graphics.Canvas) on the View. However these
software-rendered usages are discouraged and have compatibility issues with hardware-only
rendering features such as Config.HARDWARE
bitmaps, real-time shadows, and outline clipping. For screenshots of the UI for feedback
reports or unit testing the PixelCopy API is recommended.

boolean
isDuplicateParentStateEnabled()

Indicates whether this duplicates its drawable state from its parent.

boolean
isEnabled()

Returns the enabled status for this view.

final

boolean
isFocusable()

Returns whether this View is currently able to take focus.

final

boolean
isFocusableInTouchMode()

When a view is focusable, it may not want to take focus when in touch mode.

boolean
isFocused()

Returns true if this view has focus

final

boolean
isFocusedByDefault()

Returns whether this View should receive focus when the focus is restored for the view
hierarchy containing this view.

boolean
isForceDarkAllowed()

See setForceDarkAllowed(boolean)

boolean
isHapticFeedbackEnabled()

boolean
isHardwareAccelerated()

Indicates whether this view is attached to a hardware accelerated
window or not.

boolean
isHorizontalFadingEdgeEnabled()

Indicate whether the horizontal edges are faded when the view is
scrolled horizontally.

boolean
isHorizontalScrollBarEnabled()

Indicate whether the horizontal scrollbar should be drawn or not.

boolean
isHovered()

Returns true if the view is currently hovered.

boolean
isImportantForAccessibility()

Computes whether this view should be exposed for accessibility.

final

boolean
isImportantForAutofill()

Hints the Android System whether the AssistStructure.ViewNode
associated with this view is considered important for autofill purposes.

final

boolean
isImportantForContentCapture()

Hints the Android System whether this view is considered important for content capture, based
on the value explicitly set by setImportantForContentCapture(int) and heuristics
when it’s IMPORTANT_FOR_CONTENT_CAPTURE_AUTO.

boolean
isInEditMode()

Indicates whether this View is currently in edit mode.

boolean
isInLayout()

Returns whether the view hierarchy is currently undergoing a layout pass.

boolean
isInTouchMode()

Returns the touch mode state associated with this view.

final

boolean
isKeyboardNavigationCluster()

Returns whether this View is a root of a keyboard navigation cluster.

boolean
isLaidOut()

Returns true if this view has been through at least one layout since it
was last attached to or detached from a window.

boolean
isLayoutDirectionResolved()

boolean
isLayoutRequested()

Indicates whether or not this view’s layout will be requested during
the next hierarchy layout pass.

boolean
isLongClickable()

Indicates whether this view reacts to long click events or not.

boolean
isNestedScrollingEnabled()

Returns true if nested scrolling is enabled for this view.

boolean
isOpaque()

Indicates whether this View is opaque.

boolean
isPaddingOffsetRequired()

If the View draws content inside its padding and enables fading edges,
it needs to support padding offsets.

boolean
isPaddingRelative()

Return if the padding has been set through relative values
setPaddingRelative(int, int, int, int) or through

boolean
isPivotSet()

Returns whether or not a pivot has been set by a call to setPivotX(float) or
setPivotY(float).

final

boolean
isPreferKeepClear()

Retrieve the preference for this view to be kept clear.

boolean
isPressed()

Indicates whether the view is currently in pressed state.

boolean
isSaveEnabled()

Indicates whether this view will save its state (that is,
whether its onSaveInstanceState() method will be called).

boolean
isSaveFromParentEnabled()

Indicates whether the entire hierarchy under this view will save its
state when a state saving traversal occurs from its parent.

boolean
isScreenReaderFocusable()

Returns whether the view should be treated as a focusable unit by screen reader
accessibility tools.

boolean
isScrollContainer()

Indicates whether this view is one of the set of scrollable containers in
its window.

boolean
isScrollbarFadingEnabled()

Returns true if scrollbars will fade when this view is not scrolling

boolean
isSelected()

Indicates the selection state of this view.

final

boolean
isShowingLayoutBounds()

Returns true when the View is attached and the system developer setting to show
the layout bounds is enabled or false otherwise.

boolean
isShown()

Returns the visibility of this view and all of its ancestors

boolean
isSoundEffectsEnabled()

final

boolean
isTemporarilyDetached()

Tells whether the View is in the state between onStartTemporaryDetach()
and onFinishTemporaryDetach().

boolean
isTextAlignmentResolved()

boolean
isTextDirectionResolved()

boolean
isVerticalFadingEdgeEnabled()

Indicate whether the vertical edges are faded when the view is
scrolled horizontally.

boolean
isVerticalScrollBarEnabled()

Indicate whether the vertical scrollbar should be drawn or not.

boolean
isVisibleToUserForAutofill(int virtualId)

Computes whether this virtual autofill view is visible to the user.

void
jumpDrawablesToCurrentState()

Call Drawable.jumpToCurrentState()
on all Drawable objects associated with this view.

View
keyboardNavigationClusterSearch(View currentCluster, int direction)

Find the nearest keyboard navigation cluster in the specified direction.

void
layout(int l, int t, int r, int b)

Assign a size and position to a view and all of its
descendants

This is the second phase of the layout mechanism.

final

void
measure(int widthMeasureSpec, int heightMeasureSpec)

This is called to find out how big a view should be.

static

int[]
mergeDrawableStates(int[] baseState, int[] additionalState)

Merge your own state values in additionalState into the base
state values baseState that were returned by
onCreateDrawableState(int).

void
offsetLeftAndRight(int offset)

Offset this view’s horizontal location by the specified amount of pixels.

void
offsetTopAndBottom(int offset)

Offset this view’s vertical location by the specified number of pixels.

void
onAnimationEnd()

Invoked by a parent ViewGroup to notify the end of the animation
currently associated with this view.

void
onAnimationStart()

Invoked by a parent ViewGroup to notify the start of the animation
currently associated with this view.

WindowInsets
onApplyWindowInsets(WindowInsets insets)

Called when the view should apply WindowInsets according to its internal policy.

void
onAttachedToWindow()

This is called when the view is attached to a window.

void
onCancelPendingInputEvents()

Called as the result of a call to cancelPendingInputEvents() on this view or
a parent view.

boolean
onCapturedPointerEvent(MotionEvent event)

Implement this method to handle captured pointer events

boolean
onCheckIsTextEditor()

Check whether the called view is a text editor, in which case it
would make sense to automatically display a soft input window for
it.

void
onConfigurationChanged(Configuration newConfig)

Called when the current configuration of the resources being used
by the application have changed.

void
onCreateContextMenu(ContextMenu menu)

Views should implement this if the view itself is going to add items to
the context menu.

int[]
onCreateDrawableState(int extraSpace)

Generate the new Drawable state for
this view.

InputConnection
onCreateInputConnection(EditorInfo outAttrs)

Create a new InputConnection for an InputMethod to interact
with the view.

void
onCreateViewTranslationRequest(int[] supportedFormats, Consumer<ViewTranslationRequest> requestsCollector)

Collects a ViewTranslationRequest which represents the content to be translated in
the view.

void
onCreateVirtualViewTranslationRequests(long[] virtualIds, int[] supportedFormats, Consumer<ViewTranslationRequest> requestsCollector)

Collects ViewTranslationRequests which represents the content to be translated
for the virtual views in the host view.

void
onDetachedFromWindow()

This is called when the view is detached from a window.

void
onDisplayHint(int hint)

Gives this view a hint about whether is displayed or not.

boolean
onDragEvent(DragEvent event)

Handles drag events sent by the system following a call to
startDragAndDrop().

void
onDraw(Canvas canvas)

Implement this to do your drawing.

void
onDrawForeground(Canvas canvas)

Draw any foreground content for this view.

final

void
onDrawScrollBars(Canvas canvas)

Request the drawing of the horizontal and the vertical scrollbar.

boolean
onFilterTouchEventForSecurity(MotionEvent event)

Filter the touch event to apply security policies.

void
onFinishInflate()

Finalize inflating a view from XML.

void
onFinishTemporaryDetach()

Called after onStartTemporaryDetach() when the container is done
changing the view.

void
onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect)

Called by the view system when the focus state of this view changes.

boolean
onGenericMotionEvent(MotionEvent event)

Implement this method to handle generic motion events.

void
onHoverChanged(boolean hovered)

Implement this method to handle hover state changes.

boolean
onHoverEvent(MotionEvent event)

Implement this method to handle hover events.

void
onInitializeAccessibilityEvent(AccessibilityEvent event)

Initializes an AccessibilityEvent with information about
this View which is the event source.

void
onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info)

Initializes an AccessibilityNodeInfo with information about this view.

boolean
onKeyDown(int keyCode, KeyEvent event)

Default implementation of KeyEvent.Callback.onKeyDown(): perform press of the view
when KeyEvent#KEYCODE_DPAD_CENTER or KeyEvent#KEYCODE_ENTER
is released, if the view is enabled and clickable.

boolean
onKeyLongPress(int keyCode, KeyEvent event)

Default implementation of KeyEvent.Callback.onKeyLongPress(): always returns false (doesn’t handle
the event).

boolean
onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)

Default implementation of KeyEvent.Callback.onKeyMultiple(): always returns false (doesn’t handle
the event).

boolean
onKeyPreIme(int keyCode, KeyEvent event)

Handle a key event before it is processed by any input method
associated with the view hierarchy.

boolean
onKeyShortcut(int keyCode, KeyEvent event)

Called on the focused view when a key shortcut event is not handled.

boolean
onKeyUp(int keyCode, KeyEvent event)

Default implementation of KeyEvent.Callback.onKeyUp(): perform clicking of the view
when KeyEvent#KEYCODE_DPAD_CENTER, KeyEvent#KEYCODE_ENTER
or KeyEvent#KEYCODE_SPACE is released.

void
onLayout(boolean changed, int left, int top, int right, int bottom)

Called from layout when this view should
assign a size and position to each of its children.

void
onMeasure(int widthMeasureSpec, int heightMeasureSpec)

Measure the view and its content to determine the measured width and the
measured height.

void
onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY)

Called by overScrollBy(int, int, int, int, int, int, int, int, boolean) to
respond to the results of an over-scroll operation.

void
onPointerCaptureChange(boolean hasCapture)

Called when the window has just acquired or lost pointer capture.

void
onPopulateAccessibilityEvent(AccessibilityEvent event)

Called from dispatchPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent)
giving a chance to this View to populate the accessibility event with its
text content.

void
onProvideAutofillStructure(ViewStructure structure, int flags)

Populates a ViewStructure to fullfil an autofill request.

void
onProvideAutofillVirtualStructure(ViewStructure structure, int flags)

Populates a ViewStructure containing virtual children to fullfil an autofill
request.

void
onProvideContentCaptureStructure(ViewStructure structure, int flags)

Populates a ViewStructure for content capture.

void
onProvideStructure(ViewStructure structure)

Called when assist structure is being retrieved from a view as part of
Activity.onProvideAssistData.

void
onProvideVirtualStructure(ViewStructure structure)

Called when assist structure is being retrieved from a view as part of
Activity.onProvideAssistData to
generate additional virtual structure under this view.

ContentInfo
onReceiveContent(ContentInfo payload)

Implements the default behavior for receiving content for this type of view.

PointerIcon
onResolvePointerIcon(MotionEvent event, int pointerIndex)

Returns the pointer icon for the motion event, or null if it doesn’t specify the icon.

void
onRestoreInstanceState(Parcelable state)

Hook allowing a view to re-apply a representation of its internal state that had previously
been generated by onSaveInstanceState().

void
onRtlPropertiesChanged(int layoutDirection)

Called when any RTL property (layout direction or text direction or text alignment) has
been changed.

Parcelable
onSaveInstanceState()

Hook allowing a view to generate a representation of its internal state
that can later be used to create a new instance with that same state.

void
onScreenStateChanged(int screenState)

This method is called whenever the state of the screen this view is
attached to changes.

void
onScrollCaptureSearch(Rect localVisibleRect, Point windowOffset, Consumer<ScrollCaptureTarget> targets)

Called when scroll capture is requested, to search for appropriate content to scroll.

void
onScrollChanged(int l, int t, int oldl, int oldt)

This is called in response to an internal scroll in this view (i.e., the
view scrolled its own contents).

boolean
onSetAlpha(int alpha)

Invoked if there is a Transform that involves alpha.

void
onSizeChanged(int w, int h, int oldw, int oldh)

This is called during layout when the size of this view has changed.

void
onStartTemporaryDetach()

This is called when a container is going to temporarily detach a child, with
ViewGroup.detachViewFromParent.

boolean
onTouchEvent(MotionEvent event)

Implement this method to handle touch screen motion events.

boolean
onTrackballEvent(MotionEvent event)

Implement this method to handle trackball motion events.

void
onViewTranslationResponse(ViewTranslationResponse response)

Called when the content from View#onCreateViewTranslationRequest had been translated
by the TranslationService.

void
onVirtualViewTranslationResponses(LongSparseArray<ViewTranslationResponse> response)

Called when the content from View#onCreateVirtualViewTranslationRequests had been
translated by the TranslationService.

void
onVisibilityAggregated(boolean isVisible)

Called when the user-visibility of this View is potentially affected by a change
to this view itself, an ancestor view or the window this view is attached to.

void
onVisibilityChanged(View changedView, int visibility)

Called when the visibility of the view or an ancestor of the view has
changed.

void
onWindowFocusChanged(boolean hasWindowFocus)

Called when the window containing this view gains or loses focus.

void
onWindowSystemUiVisibilityChanged(int visible)


This method was deprecated
in API level 30.
SystemUiVisibility flags are deprecated. Use WindowInsetsController
instead.

void
onWindowVisibilityChanged(int visibility)

Called when the window containing has change its visibility
(between GONE, INVISIBLE, and VISIBLE).

boolean
overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent)

Scroll the view with standard behavior for scrolling beyond the normal
content boundaries.

boolean
performAccessibilityAction(int action, Bundle arguments)

Performs the specified accessibility action on the view.

boolean
performClick()

Call this view’s OnClickListener, if it is defined.

boolean
performContextClick(float x, float y)

Call this view’s OnContextClickListener, if it is defined.

boolean
performContextClick()

Call this view’s OnContextClickListener, if it is defined.

boolean
performHapticFeedback(int feedbackConstant)

BZZZTT!!1!

Provide haptic feedback to the user for this view.

boolean
performHapticFeedback(int feedbackConstant, int flags)

BZZZTT!!1!

Like performHapticFeedback(int), with additional options.

boolean
performLongClick(float x, float y)

Calls this view’s OnLongClickListener, if it is defined.

boolean
performLongClick()

Calls this view’s OnLongClickListener, if it is defined.

ContentInfo
performReceiveContent(ContentInfo payload)

Receives the given content.

void
playSoundEffect(int soundConstant)

Play a sound effect for this view.

boolean
post(Runnable action)

Causes the Runnable to be added to the message queue.

boolean
postDelayed(Runnable action, long delayMillis)

Causes the Runnable to be added to the message queue, to be run
after the specified amount of time elapses.

void
postInvalidate()

Cause an invalidate to happen on a subsequent cycle through the event loop.

void
postInvalidate(int left, int top, int right, int bottom)

Cause an invalidate of the specified area to happen on a subsequent cycle
through the event loop.

void
postInvalidateDelayed(long delayMilliseconds, int left, int top, int right, int bottom)

Cause an invalidate of the specified area to happen on a subsequent cycle
through the event loop.

void
postInvalidateDelayed(long delayMilliseconds)

Cause an invalidate to happen on a subsequent cycle through the event
loop.

void
postInvalidateOnAnimation(int left, int top, int right, int bottom)

Cause an invalidate of the specified area to happen on the next animation
time step, typically the next display frame.

void
postInvalidateOnAnimation()

Cause an invalidate to happen on the next animation time step, typically the
next display frame.

void
postOnAnimation(Runnable action)

Causes the Runnable to execute on the next animation time step.

void
postOnAnimationDelayed(Runnable action, long delayMillis)

Causes the Runnable to execute on the next animation time step,
after the specified amount of time elapses.

void
refreshDrawableState()

Call this to force a view to update its drawable state.

void
releasePointerCapture()

Releases the pointer capture.

boolean
removeCallbacks(Runnable action)

Removes the specified Runnable from the message queue.

void
removeOnAttachStateChangeListener(View.OnAttachStateChangeListener listener)

Remove a listener for attach state changes.

void
removeOnLayoutChangeListener(View.OnLayoutChangeListener listener)

Remove a listener for layout changes.

void
removeOnUnhandledKeyEventListener(View.OnUnhandledKeyEventListener listener)

Removes a listener which will receive unhandled KeyEvents.

void
requestApplyInsets()

Ask that a new dispatch of onApplyWindowInsets(android.view.WindowInsets) be performed.

void
requestFitSystemWindows()


This method was deprecated
in API level 20.
Use requestApplyInsets() for newer platform versions.

final

boolean
requestFocus(int direction)

Call this to try to give focus to a specific view or to one of its
descendants and give it a hint about what direction focus is heading.

final

boolean
requestFocus()

Call this to try to give focus to a specific view or to one of its
descendants.

boolean
requestFocus(int direction, Rect previouslyFocusedRect)

Call this to try to give focus to a specific view or to one of its descendants
and give it hints about the direction and a specific rectangle that the focus
is coming from.

final

boolean
requestFocusFromTouch()

Call this to try to give focus to a specific view or to one of its descendants.

void
requestLayout()

Call this when something has changed which has invalidated the
layout of this view.

void
requestPointerCapture()

Requests pointer capture mode.

boolean
requestRectangleOnScreen(Rect rectangle)

Request that a rectangle of this view be visible on the screen,
scrolling if necessary just enough.

boolean
requestRectangleOnScreen(Rect rectangle, boolean immediate)

Request that a rectangle of this view be visible on the screen,
scrolling if necessary just enough.

final

void
requestUnbufferedDispatch(int source)

Request unbuffered dispatch of the given event source class to this view.

final

void
requestUnbufferedDispatch(MotionEvent event)

Request unbuffered dispatch of the given stream of MotionEvents to this View.

final
<T extends View>
T

requireViewById(int id)

Finds the first descendant view with the given ID, the view itself if the ID matches
getId(), or throws an IllegalArgumentException if the ID is invalid or there is no
matching view in the hierarchy.

void
resetPivot()

Clears any pivot previously set by a call to setPivotX(float) or
setPivotY(float).

static

int
resolveSize(int size, int measureSpec)

Version of resolveSizeAndState(int, int, int)
returning only the MEASURED_SIZE_MASK bits of the result.

static

int
resolveSizeAndState(int size, int measureSpec, int childMeasuredState)

Utility to reconcile a desired size and state, with constraints imposed
by a MeasureSpec.

boolean
restoreDefaultFocus()

Gives focus to the default-focus view in the view hierarchy that has this view as a root.

void
restoreHierarchyState(SparseArray<Parcelable> container)

Restore this view hierarchy’s frozen state from the given container.

final

void
saveAttributeDataForStyleable(Context context, int[] styleable, AttributeSet attrs, TypedArray t, int defStyleAttr, int defStyleRes)

Stores debugging information about attributes.

void
saveHierarchyState(SparseArray<Parcelable> container)

Store this view hierarchy’s frozen state into the given container.

void
scheduleDrawable(Drawable who, Runnable what, long when)

Schedules an action on a drawable to occur at a specified time.

void
scrollBy(int x, int y)

Move the scrolled position of your view.

void
scrollTo(int x, int y)

Set the scrolled position of your view.

void
sendAccessibilityEvent(int eventType)

Sends an accessibility event of the given type.

void
sendAccessibilityEventUnchecked(AccessibilityEvent event)

This method behaves exactly as sendAccessibilityEvent(int) but
takes as an argument an empty AccessibilityEvent and does not
perform a check whether accessibility is enabled.

void
setAccessibilityDataPrivate(int accessibilityDataPrivate)

Specifies whether this view should only allow interactions from
AccessibilityServices with the
AccessibilityServiceInfo.isAccessibilityTool() property
set to true.

void
setAccessibilityDelegate(View.AccessibilityDelegate delegate)

Sets a delegate for implementing accessibility support via composition
(as opposed to inheritance).

void
setAccessibilityHeading(boolean isHeading)

Set if view is a heading for a section of content for accessibility purposes.

void
setAccessibilityLiveRegion(int mode)

Sets the live region mode for this view.

void
setAccessibilityPaneTitle(CharSequence accessibilityPaneTitle)

Visually distinct portion of a window with window-like semantics are considered panes for
accessibility purposes.

void
setAccessibilityTraversalAfter(int afterId)

Sets the id of a view after which this one is visited in accessibility traversal.

void
setAccessibilityTraversalBefore(int beforeId)

Sets the id of a view before which this one is visited in accessibility traversal.

void
setActivated(boolean activated)

Changes the activated state of this view.

void
setAllowClickWhenDisabled(boolean clickableWhenDisabled)

Enables or disables click events for this view when disabled.

void
setAlpha(float alpha)

Sets the opacity of the view to a value from 0 to 1, where 0 means the view is
completely transparent and 1 means the view is completely opaque.

void
setAnimation(Animation animation)

Sets the next animation to play for this view.

void
setAnimationMatrix(Matrix matrix)

Changes the transformation matrix on the view.

void
setAutoHandwritingEnabled(boolean enabled)

Set whether this view enables automatic handwriting initiation.

void
setAutofillHints(String... autofillHints)

Sets the hints that help an AutofillService determine how
to autofill the view with the user’s data.

void
setAutofillId(AutofillId id)

Sets the unique, logical identifier of this view in the activity, for autofill purposes.

void
setBackground(Drawable background)

Set the background to a given Drawable, or remove the background.

void
setBackgroundColor(int color)

Sets the background color for this view.

void
setBackgroundDrawable(Drawable background)


This method was deprecated
in API level 16.
use setBackground(android.graphics.drawable.Drawable) instead

void
setBackgroundResource(int resid)

Set the background to a given resource.

void
setBackgroundTintBlendMode(BlendMode blendMode)

Specifies the blending mode used to apply the tint specified by
setBackgroundTintList(android.content.res.ColorStateList)} to the background
drawable.

void
setBackgroundTintList(ColorStateList tint)

Applies a tint to the background drawable.

void
setBackgroundTintMode(PorterDuff.Mode tintMode)

Specifies the blending mode used to apply the tint specified by
setBackgroundTintList(android.content.res.ColorStateList)} to the background
drawable.

final

void
setBottom(int bottom)

Sets the bottom position of this view relative to its parent.

void
setCameraDistance(float distance)

Sets the distance along the Z axis (orthogonal to the X/Y plane on which
views are drawn) from the camera to this view.

void
setClickable(boolean clickable)

Enables or disables click events for this view.

void
setClipBounds(Rect clipBounds)

Sets a rectangular area on this view to which the view will be clipped
when it is drawn.

void
setClipToOutline(boolean clipToOutline)

Sets whether the View’s Outline should be used to clip the contents of the View.

void
setContentCaptureSession(ContentCaptureSession contentCaptureSession)

Sets the (optional) ContentCaptureSession associated with this view.

void
setContentDescription(CharSequence contentDescription)

Sets the View‘s content description.

void
setContextClickable(boolean contextClickable)

Enables or disables context clicking for this view.

void
setDefaultFocusHighlightEnabled(boolean defaultFocusHighlightEnabled)

Sets whether this View should use a default focus highlight when it gets focused but doesn’t
have R.attr.state_focused defined in its background.

void
setDrawingCacheBackgroundColor(int color)


This method was deprecated
in API level 28.
The view drawing cache was largely made obsolete with the introduction of
hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache
layers are largely unnecessary and can easily result in a net loss in performance due to the
cost of creating and updating the layer. In the rare cases where caching layers are useful,
such as for alpha animations, setLayerType(int, android.graphics.Paint) handles this with hardware
rendering. For software-rendered snapshots of a small part of the View hierarchy or
individual Views it is recommended to create a Canvas from either a Bitmap or
Picture and call draw(android.graphics.Canvas) on the View. However these
software-rendered usages are discouraged and have compatibility issues with hardware-only
rendering features such as Config.HARDWARE
bitmaps, real-time shadows, and outline clipping. For screenshots of the UI for feedback
reports or unit testing the PixelCopy API is recommended.

void
setDrawingCacheEnabled(boolean enabled)


This method was deprecated
in API level 28.
The view drawing cache was largely made obsolete with the introduction of
hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache
layers are largely unnecessary and can easily result in a net loss in performance due to the
cost of creating and updating the layer. In the rare cases where caching layers are useful,
such as for alpha animations, setLayerType(int, android.graphics.Paint) handles this with hardware
rendering. For software-rendered snapshots of a small part of the View hierarchy or
individual Views it is recommended to create a Canvas from either a Bitmap or
Picture and call draw(android.graphics.Canvas) on the View. However these
software-rendered usages are discouraged and have compatibility issues with hardware-only
rendering features such as Config.HARDWARE
bitmaps, real-time shadows, and outline clipping. For screenshots of the UI for feedback
reports or unit testing the PixelCopy API is recommended.

void
setDrawingCacheQuality(int quality)


This method was deprecated
in API level 28.
The view drawing cache was largely made obsolete with the introduction of
hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache
layers are largely unnecessary and can easily result in a net loss in performance due to the
cost of creating and updating the layer. In the rare cases where caching layers are useful,
such as for alpha animations, setLayerType(int, android.graphics.Paint) handles this with hardware
rendering. For software-rendered snapshots of a small part of the View hierarchy or
individual Views it is recommended to create a Canvas from either a Bitmap or
Picture and call draw(android.graphics.Canvas) on the View. However these
software-rendered usages are discouraged and have compatibility issues with hardware-only
rendering features such as Config.HARDWARE
bitmaps, real-time shadows, and outline clipping. For screenshots of the UI for feedback
reports or unit testing the PixelCopy API is recommended.

void
setDuplicateParentStateEnabled(boolean enabled)

Enables or disables the duplication of the parent’s state into this view.

void
setElevation(float elevation)

Sets the base elevation of this view, in pixels.

void
setEnabled(boolean enabled)

Set the enabled state of this view.

void
setFadingEdgeLength(int length)

Set the size of the faded edge used to indicate that more content in this
view is available.

void
setFilterTouchesWhenObscured(boolean enabled)

Sets whether the framework should discard touches when the view’s
window is obscured by another visible window at the touched location.

void
setFitsSystemWindows(boolean fitSystemWindows)

Sets whether or not this view should account for system screen decorations
such as the status bar and inset its content; that is, controlling whether
the default implementation of fitSystemWindows(android.graphics.Rect) will be
executed.

void
setFocusable(boolean focusable)

Set whether this view can receive the focus.

void
setFocusable(int focusable)

Sets whether this view can receive focus.

void
setFocusableInTouchMode(boolean focusableInTouchMode)

Set whether this view can receive focus while in touch mode.

void
setFocusedByDefault(boolean isFocusedByDefault)

Sets whether this View should receive focus when the focus is restored for the view
hierarchy containing this view.

void
setForceDarkAllowed(boolean allow)

Sets whether or not to allow force dark to apply to this view.

void
setForeground(Drawable foreground)

Supply a Drawable that is to be rendered on top of all of the content in the view.

void
setForegroundGravity(int gravity)

Describes how the foreground is positioned.

void
setForegroundTintBlendMode(BlendMode blendMode)

Specifies the blending mode used to apply the tint specified by
setForegroundTintList(android.content.res.ColorStateList)} to the background
drawable.

void
setForegroundTintList(ColorStateList tint)

Applies a tint to the foreground drawable.

void
setForegroundTintMode(PorterDuff.Mode tintMode)

Specifies the blending mode used to apply the tint specified by
setForegroundTintList(android.content.res.ColorStateList)} to the background
drawable.

void
setHandwritingBoundsOffsets(float offsetLeft, float offsetTop, float offsetRight, float offsetBottom)

Set the amount of offset applied to this view’s stylus handwriting bounds.

void
setHandwritingDelegateConfiguration(HandwritingDelegateConfiguration configuration)

Configures this view to act as a handwriting initiation delegate.

void
setHapticFeedbackEnabled(boolean hapticFeedbackEnabled)

Set whether this view should have haptic feedback for events such as
long presses.

void
setHasTransientState(boolean hasTransientState)

Set whether this view is currently tracking transient state that the
framework should attempt to preserve when possible.

void
setHorizontalFadingEdgeEnabled(boolean horizontalFadingEdgeEnabled)

Define whether the horizontal edges should be faded when this view
is scrolled horizontally.

void
setHorizontalScrollBarEnabled(boolean horizontalScrollBarEnabled)

Define whether the horizontal scrollbar should be drawn or not.

void
setHorizontalScrollbarThumbDrawable(Drawable drawable)

Defines the horizontal thumb drawable

void
setHorizontalScrollbarTrackDrawable(Drawable drawable)

Defines the horizontal track drawable

void
setHovered(boolean hovered)

Sets whether the view is currently hovered.

void
setId(int id)

Sets the identifier for this view.

void
setImportantForAccessibility(int mode)

Sets how to determine whether this view is important for accessibility
which is if it fires accessibility events and if it is reported to
accessibility services that query the screen.

void
setImportantForAutofill(int mode)

Sets the mode for determining whether this view is considered important for autofill.

void
setImportantForContentCapture(int mode)

Sets the mode for determining whether this view is considered important for content capture.

void
setIsCredential(boolean isCredential)

Gets the mode for determining whether this view is a credential.

void
setKeepScreenOn(boolean keepScreenOn)

Controls whether the screen should remain on, modifying the
value of KEEP_SCREEN_ON.

void
setKeyboardNavigationCluster(boolean isCluster)

Set whether this view is a root of a keyboard navigation cluster.

void
setLabelFor(int id)

Sets the id of a view for which this view serves as a label for
accessibility purposes.

void
setLayerPaint(Paint paint)

Updates the Paint object used with the current layer (used only if the current
layer type is not set to LAYER_TYPE_NONE).

void
setLayerType(int layerType, Paint paint)

Specifies the type of layer backing this view.

void
setLayoutDirection(int layoutDirection)

Set the layout direction for this view.

void
setLayoutParams(ViewGroup.LayoutParams params)

Set the layout parameters associated with this view.

final

void
setLeft(int left)

Sets the left position of this view relative to its parent.

final

void
setLeftTopRightBottom(int left, int top, int right, int bottom)

Assign a size and position to this view.

void
setLongClickable(boolean longClickable)

Enables or disables long click events for this view.

final

void
setMeasuredDimension(int measuredWidth, int measuredHeight)

This method must be called by onMeasure(int, int) to store the
measured width and measured height.

void
setMinimumHeight(int minHeight)

Sets the minimum height of the view.

void
setMinimumWidth(int minWidth)

Sets the minimum width of the view.

void
setNestedScrollingEnabled(boolean enabled)

Enable or disable nested scrolling for this view.

void
setNextClusterForwardId(int nextClusterForwardId)

Sets the id of the view to use as the root of the next keyboard navigation cluster.

void
setNextFocusDownId(int nextFocusDownId)

Sets the id of the view to use when the next focus is FOCUS_DOWN.

void
setNextFocusForwardId(int nextFocusForwardId)

Sets the id of the view to use when the next focus is FOCUS_FORWARD.

void
setNextFocusLeftId(int nextFocusLeftId)

Sets the id of the view to use when the next focus is FOCUS_LEFT.

void
setNextFocusRightId(int nextFocusRightId)

Sets the id of the view to use when the next focus is FOCUS_RIGHT.

void
setNextFocusUpId(int nextFocusUpId)

Sets the id of the view to use when the next focus is FOCUS_UP.

void
setOnApplyWindowInsetsListener(View.OnApplyWindowInsetsListener listener)

Set an OnApplyWindowInsetsListener to take over the policy for applying
window insets to this view.

void
setOnCapturedPointerListener(View.OnCapturedPointerListener l)

Set a listener to receive callbacks when the pointer capture state of a view changes.

void
setOnClickListener(View.OnClickListener l)

Register a callback to be invoked when this view is clicked.

void
setOnContextClickListener(View.OnContextClickListener l)

Register a callback to be invoked when this view is context clicked.

void
setOnCreateContextMenuListener(View.OnCreateContextMenuListener l)

Register a callback to be invoked when the context menu for this view is
being built.

void
setOnDragListener(View.OnDragListener l)

Register a drag event listener callback object for this View.

void
setOnFocusChangeListener(View.OnFocusChangeListener l)

Register a callback to be invoked when focus of this view changed.

void
setOnGenericMotionListener(View.OnGenericMotionListener l)

Register a callback to be invoked when a generic motion event is sent to this view.

void
setOnHoverListener(View.OnHoverListener l)

Register a callback to be invoked when a hover event is sent to this view.

void
setOnKeyListener(View.OnKeyListener l)

Register a callback to be invoked when a hardware key is pressed in this view.

void
setOnLongClickListener(View.OnLongClickListener l)

Register a callback to be invoked when this view is clicked and held.

void
setOnReceiveContentListener(String[] mimeTypes, OnReceiveContentListener listener)

Sets the listener to be used to handle insertion of
content into this view.

void
setOnScrollChangeListener(View.OnScrollChangeListener l)

Register a callback to be invoked when the scroll X or Y positions of
this view change.

void
setOnSystemUiVisibilityChangeListener(View.OnSystemUiVisibilityChangeListener l)


This method was deprecated
in API level 30.
Use WindowInsets#isVisible(int) to find out about system bar visibilities
by setting a OnApplyWindowInsetsListener on this view.

void
setOnTouchListener(View.OnTouchListener l)

Register a callback to be invoked when a touch event is sent to this view.

void
setOutlineAmbientShadowColor(int color)

Sets the color of the ambient shadow that is drawn when the view has a positive Z or
elevation value.

void
setOutlineProvider(ViewOutlineProvider provider)

Sets the ViewOutlineProvider of the view, which generates the Outline that defines
the shape of the shadow it casts, and enables outline clipping.

void
setOutlineSpotShadowColor(int color)

Sets the color of the spot shadow that is drawn when the view has a positive Z or
elevation value.

void
setOverScrollMode(int overScrollMode)

Set the over-scroll mode for this view.

void
setPadding(int left, int top, int right, int bottom)

Sets the padding.

void
setPaddingRelative(int start, int top, int end, int bottom)

Sets the relative padding.

void
setPivotX(float pivotX)

Sets the x location of the point around which the view is
rotated and scaled.

void
setPivotY(float pivotY)

Sets the y location of the point around which the view is rotated
and scaled.

void
setPointerIcon(PointerIcon pointerIcon)

Set the pointer icon for the current view.

final

void
setPreferKeepClear(boolean preferKeepClear)

Set a preference to keep the bounds of this view clear from floating windows above this
view’s window.

final

void
setPreferKeepClearRects(List<Rect> rects)

Set a preference to keep the provided rects clear from floating windows above this
view’s window.

void
setPressed(boolean pressed)

Sets the pressed state for this view.

void
setRenderEffect(RenderEffect renderEffect)

Configure the RenderEffect to apply to this View.

final

void
setRevealOnFocusHint(boolean revealOnFocus)

Sets this view’s preference for reveal behavior when it gains focus.

final

void
setRight(int right)

Sets the right position of this view relative to its parent.

void
setRotation(float rotation)

Sets the degrees that the view is rotated around the pivot point.

void
setRotationX(float rotationX)

Sets the degrees that the view is rotated around the horizontal axis through the pivot point.

void
setRotationY(float rotationY)

Sets the degrees that the view is rotated around the vertical axis through the pivot point.

void
setSaveEnabled(boolean enabled)

Controls whether the saving of this view’s state is
enabled (that is, whether its onSaveInstanceState() method
will be called).

void
setSaveFromParentEnabled(boolean enabled)

Controls whether the entire hierarchy under this view will save its
state when a state saving traversal occurs from its parent.

void
setScaleX(float scaleX)

Sets the amount that the view is scaled in x around the pivot point, as a proportion of
the view’s unscaled width.

void
setScaleY(float scaleY)

Sets the amount that the view is scaled in Y around the pivot point, as a proportion of
the view’s unscaled width.

void
setScreenReaderFocusable(boolean screenReaderFocusable)

Sets whether this View should be a focusable element for screen readers
and include non-focusable Views from its subtree when providing feedback.

void
setScrollBarDefaultDelayBeforeFade(int scrollBarDefaultDelayBeforeFade)

Define the delay before scrollbars fade.

void
setScrollBarFadeDuration(int scrollBarFadeDuration)

Define the scrollbar fade duration.

void
setScrollBarSize(int scrollBarSize)

Define the scrollbar size.

void
setScrollBarStyle(int style)

Specify the style of the scrollbars.

final

void
setScrollCaptureCallback(ScrollCaptureCallback callback)

Sets the callback to receive scroll capture requests.

void
setScrollCaptureHint(int hint)

Sets the scroll capture hint for this View.

void
setScrollContainer(boolean isScrollContainer)

Change whether this view is one of the set of scrollable containers in
its window.

void
setScrollIndicators(int indicators, int mask)

Sets the state of the scroll indicators specified by the mask.

void
setScrollIndicators(int indicators)

Sets the state of all scroll indicators.

void
setScrollX(int value)

Set the horizontal scrolled position of your view.

void
setScrollY(int value)

Set the vertical scrolled position of your view.

void
setScrollbarFadingEnabled(boolean fadeScrollbars)

Define whether scrollbars will fade when the view is not scrolling.

void
setSelected(boolean selected)

Changes the selection state of this view.

void
setSoundEffectsEnabled(boolean soundEffectsEnabled)

Set whether this view should have sound effects enabled for events such as
clicking and touching.

void
setStateDescription(CharSequence stateDescription)

Sets the View‘s state description.

void
setStateListAnimator(StateListAnimator stateListAnimator)

Attaches the provided StateListAnimator to this View.

void
setSystemGestureExclusionRects(List<Rect> rects)

Sets a list of areas within this view’s post-layout coordinate space where the system
should not intercept touch or other pointing device gestures.

void
setSystemUiVisibility(int visibility)


This method was deprecated
in API level 30.
SystemUiVisibility flags are deprecated. Use WindowInsetsController
instead.

void
setTag(int key, Object tag)

Sets a tag associated with this view and a key.

void
setTag(Object tag)

Sets the tag associated with this view.

void
setTextAlignment(int textAlignment)

Set the text alignment.

void
setTextDirection(int textDirection)

Set the text direction.

void
setTooltipText(CharSequence tooltipText)

Sets the tooltip text which will be displayed in a small popup next to the view.

final

void
setTop(int top)

Sets the top position of this view relative to its parent.

void
setTouchDelegate(TouchDelegate delegate)

Sets the TouchDelegate for this View.

void
setTransitionAlpha(float alpha)

This property is intended only for use by the Fade transition, which animates it
to produce a visual translucency that does not side-effect (or get affected by)
the real alpha property.

final

void
setTransitionName(String transitionName)

Sets the name of the View to be used to identify Views in Transitions.

void
setTransitionVisibility(int visibility)

Changes the visibility of this View without triggering any other changes.

void
setTranslationX(float translationX)

Sets the horizontal location of this view relative to its left position.

void
setTranslationY(float translationY)

Sets the vertical location of this view relative to its top position.

void
setTranslationZ(float translationZ)

Sets the depth location of this view relative to its elevation.

void
setVerticalFadingEdgeEnabled(boolean verticalFadingEdgeEnabled)

Define whether the vertical edges should be faded when this view
is scrolled vertically.

void
setVerticalScrollBarEnabled(boolean verticalScrollBarEnabled)

Define whether the vertical scrollbar should be drawn or not.

void
setVerticalScrollbarPosition(int position)

Set the position of the vertical scroll bar.

void
setVerticalScrollbarThumbDrawable(Drawable drawable)

Defines the vertical scrollbar thumb drawable

void
setVerticalScrollbarTrackDrawable(Drawable drawable)

Defines the vertical scrollbar track drawable

void
setViewTranslationCallback(ViewTranslationCallback callback)

Sets a ViewTranslationCallback that is used to display/hide the translated
information.

void
setVisibility(int visibility)

Set the visibility state of this view.

void
setWillNotCacheDrawing(boolean willNotCacheDrawing)


This method was deprecated
in API level 28.
The view drawing cache was largely made obsolete with the introduction of
hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache
layers are largely unnecessary and can easily result in a net loss in performance due to the
cost of creating and updating the layer. In the rare cases where caching layers are useful,
such as for alpha animations, setLayerType(int, android.graphics.Paint) handles this with hardware
rendering. For software-rendered snapshots of a small part of the View hierarchy or
individual Views it is recommended to create a Canvas from either a Bitmap or
Picture and call draw(android.graphics.Canvas) on the View. However these
software-rendered usages are discouraged and have compatibility issues with hardware-only
rendering features such as Config.HARDWARE
bitmaps, real-time shadows, and outline clipping. For screenshots of the UI for feedback
reports or unit testing the PixelCopy API is recommended.

void
setWillNotDraw(boolean willNotDraw)

If this view doesn’t do any drawing on its own, set this flag to
allow further optimizations.

void
setWindowInsetsAnimationCallback(WindowInsetsAnimation.Callback callback)

Sets a WindowInsetsAnimation.Callback to be notified about animations of windows that
cause insets.

void
setX(float x)

Sets the visual x position of this view, in pixels.

void
setY(float y)

Sets the visual y position of this view, in pixels.

void
setZ(float z)

Sets the visual z position of this view, in pixels.

boolean
showContextMenu()

Shows the context menu for this view.

boolean
showContextMenu(float x, float y)

Shows the context menu for this view anchored to the specified
view-relative coordinate.

ActionMode
startActionMode(ActionMode.Callback callback, int type)

Start an action mode with the given type.

ActionMode
startActionMode(ActionMode.Callback callback)

Start an action mode with the default type ActionMode#TYPE_PRIMARY.

void
startAnimation(Animation animation)

Start the specified animation now.

final

boolean
startDrag(ClipData data, View.DragShadowBuilder shadowBuilder, Object myLocalState, int flags)


This method was deprecated
in API level 24.
Use startDragAndDrop() for newer platform versions.

final

boolean
startDragAndDrop(ClipData data, View.DragShadowBuilder shadowBuilder, Object myLocalState, int flags)

Starts a drag and drop operation.

boolean
startNestedScroll(int axes)

Begin a nestable scroll operation along the given axes.

void
stopNestedScroll()

Stop a nested scroll in progress.

String
toString()

Returns a string representation of the object.

void
transformMatrixToGlobal(Matrix matrix)

Modifies the input matrix such that it maps view-local coordinates to
on-screen coordinates.

void
transformMatrixToLocal(Matrix matrix)

Modifies the input matrix such that it maps on-screen coordinates to
view-local coordinates.

void
unscheduleDrawable(Drawable who, Runnable what)

Cancels a scheduled action on a drawable.

void
unscheduleDrawable(Drawable who)

Unschedule any events associated with the given Drawable.

final

void
updateDragShadow(View.DragShadowBuilder shadowBuilder)

Updates the drag shadow for the ongoing drag and drop operation.

boolean
verifyDrawable(Drawable who)

If your view subclass is displaying its own Drawable objects, it should
override this function and return true for any Drawable it is
displaying.

boolean
willNotCacheDrawing()


This method was deprecated
in API level 28.
The view drawing cache was largely made obsolete with the introduction of
hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache
layers are largely unnecessary and can easily result in a net loss in performance due to the
cost of creating and updating the layer. In the rare cases where caching layers are useful,
such as for alpha animations, setLayerType(int, android.graphics.Paint) handles this with hardware
rendering. For software-rendered snapshots of a small part of the View hierarchy or
individual Views it is recommended to create a Canvas from either a Bitmap or
Picture and call draw(android.graphics.Canvas) on the View. However these
software-rendered usages are discouraged and have compatibility issues with hardware-only
rendering features such as Config.HARDWARE
bitmaps, real-time shadows, and outline clipping. For screenshots of the UI for feedback
reports or unit testing the PixelCopy API is recommended.

boolean
willNotDraw()

Returns whether or not this View draws on its own.

Improve Article

Save Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Seekbar is a type of progress bar. We can drag the seekbar from left to right and vice versa and hence changes the current progress. ColorSeekbar is similar to seekbar but we use this to select a color from multiple colors and can select any custom color. With the help of this widget, we can give more control to the user to customize its application according to his need. Approach:

    1. Add the support Library in your root build.gradle file (not your module build.gradle file). This library jitpack is a novel package repository. It is made for JVM so that any library which is present in github and bitbucket can be directly used in the application. 

    XML

    1. Add the support Library in build.gradle file and add dependency in the dependencies section. This library provides various inbuilt function which we can use to give users maximum independence to customize. 

    XML

    dependencies {

        implementation 'com.github.rtugeek:colorseekbar:1.7.7'

    }

    1. Now add a array of colors, custom_colors in strings.xml file in values directory. 

    strings.xml

    
    <array name="custom_colors">
    
                <item>#219806</item>
                <item>#F44336</item>
                <item>#FFEB3B</item>
    
    </array>
    

    activity_main.xml

    
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="vertical"
        android:padding="16dp"
        tools:context=".MainActivity">
    
        <TextView
            android:id="@+id/text_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="GeeksForGeeks"
            android:textSize="30sp"
            android:textStyle="bold" />
    
        <com.rtugeek.android.colorseekbar.ColorSeekBar
            android:id="@+id/color_seek_bar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:colorSeeds="@array/custom_colors"
            app:showAlphaBar="true" />
    
    </LinearLayout>
    

    In Android, SeekBar is an extension of ProgressBar that adds a draggable thumb, a user can touch the thumb and drag left or right to set the value for current progress.

    SeekBar in Android

    SeekBar is one of the very useful user interface element in Android that allows the selection of integer values using a natural user interface. An example of SeekBar is your device’s brightness control and volume control.

    Important Note: Attribute of a SeekBar are same as ProgressBar and the only difference is user determine the progress by moving a slider (thumb) in SeekBar. To add a SeekBar to a layout (XML) file, you can use the <SeekBar> element.

    SeekBar code in XML:

    <SeekBar
    android:id="@+id/simpleSeekBar"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />
    

    Table Of Contents

    • 1 How To Add Listener To Notify The Changes In SeekBar:
    • 2 Attributes of SeekBar In Android:
    • 3 SeekBar Example In Android Studio:
    • 4 Custom vertical SeekBar Example In Android Studio:

    How To Add Listener To Notify The Changes In SeekBar:

    SeekBar.OnSeekBarChangeListener is a listener used as a callback that notifies client when the progress level of seekbar has been changed. This listener can be used for both user initiated changes (in xml file or java class) as well as for programmatic changes.

    seekBarInstanceVariable.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {…} – This method is used to notify the user changes/actions in the SeekBar.

    Methods Needs To Be Implemented:

    In Seek bar for getting changes in progress we need to implement three abstract methods. Below is detail description of these three methods:

    1. public void onProgressChanged (SeekBar seekBar, int progresValue, boolean fromUser) {…}
    This listener method will be invoked if any change is made in the SeekBar.

    2. public void onStartTrackingTouch(SeekBar seekBar) {…}
    This listener method will be invoked at the start of user’s touch event. Whenever a user touch the thumb for dragging this method will automatically called.

    3. public void onStopTrackingTouch(SeekBar seekBar) {…}
    This listener method will be invoked at the end of user touch event. Whenever a user stop dragging the thump this method will be automatically called.

    getMax():

    We can get the maximum value of the SeekBar programmatically means in java class. This method returns an integer value. Below code will get the maximum value from a Seekbar.

    SeekBar simpleSeekBar = (SeekBar) findViewById(R.id.simpleSeekBar); // initiate the Seek bar
    
    int maxValue=simpleSeekBar.getMax(); // get maximum value of the Seek bar
    

    getProgress():

    We can get the current progress value from a Seekbar in java class using getProgress()  method. This method returns an integer value. Below code is used to get the current progress value from a Seek bar.

    SeekBar simpleSeekBar=(SeekBar)findViewById(R.id.simpleSeekBar); // initiate the Seek bar
    
    int seekBarValue= simpleSeekBar.getProgress(); // get progress value from the Seek bar
    

    Attributes of SeekBar In Android:

    Now let’s  we discuss important attributes that helps us to configure a SeekBar in xml file (layout).

    1. id: id attribute uniquely identify SeekBar.

    <SeekBar
        android:id="@+id/simpleSeekBar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" /> <!-- id of a Seek bar used to uniquely identify it-->

    2. max: max attribute in SeekBar define the maximum it can take. It must be an integer value like 10, 20, 100, 200 etc. We can set the max value in XML file as well as in java class. By default, a SeekBar takes maximum value of 100.

    Below we set 150 maximum value for a Seek bar.

    <SeekBar
    android:id="@+id/simpleSeekBar"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:max="150"/><!-- set 150 maximum value for the progress -->
    

    max in seekbar android

    Setting max value of SeekBar Progress In Java Class :

    /*Add in Oncreate() funtion after setContentView()*/
    SeekBar simpleSeekBar=(SeekBar) findViewById(R.id.simpleSeekBar); // initiate the Seekbar
    simpleSeekBar.setMax(150); // 150 maximum value for the Seek bar
    

    3. progress: progress is an attribute of SeekBar used to define the default progress value, between 0 and max. It must be an integer value.

    Below we set the 200 max value and then set 50 default progress value.

    <SeekBar
    android:id="@+id/simpleSeekBar"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:max="200"
    android:progress="50"/><!-- set 150 maximum value for the progress -->
    

    progress in SeekBar Android

    Setting progress In Java Class :

    SeekBar simpleSeekBar=(ProgressBar) findViewById(R.id.simpleSeekBar); // initiate the progress bar
    
    simpleSeekBar.setMax(200); // 200 maximum value for the Seek bar
    
    simpleSeekBar.setProgress(50); // 50 default progress value
    

    4. progressDrawable: progress drawable attribute is used in Android to set the custom drawable xml for the progress mode of a seekbar. Progress drawable is used when we need to use a custom progress of a seekbar.

    Below we set the custom gradient drawable for the progress mode of a Seekbar.

    Step 1: Add this code in activity_main.xml or main.xml

    <SeekBar
    android:id="@+id/simpleSeekBar"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:max="200"
    android:progress="50"
    android:progressDrawable="@drawable/custom_progress"/><!-- set custom progress drawable for the progress -->
    

    Step 2: Create a new drawable resource xml in drawable folder and name it custom_progress. Here add the below code which creates gradient effect in seekbar.

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
        <item>
            <shape>
                <gradient
                    android:endColor="#fff"
                    android:startColor="#f00"
                    android:useLevel="true" />
            </shape>
        </item>
    
    </layer-list>

    progressDrawable in SeekBar Android

    5. indeterminate: indeterminate is an attribute used in android to enable the indeterminate mode of a seekbar. In this mode a seekbar shows a cyclic animation without an indication of progress. This mode is used in application when we don’t know the amount of work has been done. Here actual progress will be hidden from user.

    Below we set the indeterminate to true.

    <SeekBar
    android:id="@+id/simpleSeekBar"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:max="200"
    android:indeterminate="true"/><!-- set custom progress drawable for the progress -->
    

    indeterminate in SeekBar Android

    6. background: background attribute of seekbar is used to set the background. We can set a color or a drawable in the background of a Seekbar. We can also set the background color in JAVA class.

    Below we set the green color for the background of a Seek bar.

    <SeekBar
    android:id="@+id/simpleSeekBar"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:max="200"
    android:indeterminate="true"
    android:background="#0F0"/><!-- set green color in the background of seek bar-->
    

    background in SeekBar Android

    Setting Background of SeekBar In Java class:

    SeekBar simpleSeekBar=(SeekBar)findViewById(R.id.simpleSeekBar); // initiate the seek bar
    
    simpleSeekBar.setBackgroundColor(Color.GREEN); // green background color for the seek bar

    7. padding: padding attribute of seekbar is used to set the padding from left, right, top or bottom.

    • paddingRight: padding right attribute is used to set the padding from the right side of the Seekbar.
    • paddingLeft: padding left attribute is used to set set the padding from the left side of the Seekbar.
    • paddingTop: padding top attribute is used to set the padding from the top side of the Seekbar.
    • paddingBottom: padding bottom attribute is used to set the padding from the bottom side of the Seek bar.
    • Padding: padding attribute is used to set the padding from the all side’s of the Seekbar.

    Below we set the 20dp padding from the top of the Seek bar.

    <SeekBar
        android:id="@+id/simpleSeekBar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:max="200"
        android:progress="150"
        android:background="#34A853"
        android:paddingTop="40dp"/><!-- set  20dp padding from the top of the seek bar-->

    Padding in SeekBar Android

    8. thumb: thumb attribute is used in seekbar to draw a thumb on a seekbar. We can use an image or a drawable for the thumb.

    Below is an example code in which we set a drawable icon for the thumb of the seekbar.

    First download the thumb icon from here and save in drawable folder of your project. You can also click on below icon and then download it:

    thumb icon

    <SeekBar
    android:id="@+id/simpleSeekBar"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:max="200"
    android:progress="100"
    android:thumb="@drawable/thumb"/><!-- set  a thumb drawable icon for the seek bar-->
    


    thumb in SeekBar Android


    SeekBar Example In Android Studio:

    Example 1: In the below example of  seekbar in Android we display a simple seekbar by using its different attributes as discussed earlier in this post. We also perform seekbar changed listener event which is used to get the changes in the progress of a seek bar. After getting changes, the changed value of progress is displayed by using a Toast. Below is the download code, final output and step by step tutorial:

    Important Note: Don’t miss the 2nd example of Custom SeekBar in Android which is discussed right after this example.

    Download Code ?

    SeekBar Example Android

    Step 1: Create a new project and name it SeekBarExample

    Step 2: Open res -> layout -> activity_main.xml (or) main.xml and add following code:

    In this step we open an xml file and add the code for displaying a seekbar by using its different attributes like max, default progress and few more.

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity">
    
        <SeekBar
            android:id="@+id/simpleSeekBar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:max="200"
            android:progress="60"
            />
    
    </RelativeLayout>

    Step 3: Open src -> package -> MainActivity.java

    In this step we open MainActivity and add the code to initiate the seekbar and then perform seekbar changed listener event for getting the changes in the progress of the seekbar. By using this event listener we set get the current value of a seekbar and when a user stop the tracking touch, the value of progress is displayed by using a Toast.

    package example.gb.seekbarexample;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.support.v7.widget.ButtonBarLayout;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.SeekBar;
    import android.widget.Button;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
    
        Button submitButton;
        SeekBar simpleSeekBar;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            // initiate  views
            simpleSeekBar=(SeekBar)findViewById(R.id.simpleSeekBar);
            // perform seek bar change listener event used for getting the progress value
            simpleSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                int progressChangedValue = 0;
    
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                    progressChangedValue = progress;
                }
    
                public void onStartTrackingTouch(SeekBar seekBar) {
                    // TODO Auto-generated method stub
                }
    
                public void onStopTrackingTouch(SeekBar seekBar) {
                    Toast.makeText(MainActivity.this, "Seek bar progress is :" + progressChangedValue,
                            Toast.LENGTH_SHORT).show();
                }
            });
    
        }
    
        
    }

    Custom vertical SeekBar Example In Android Studio:

    In the 2nd example of seekbar we displayed a custom vertical seekbar by using its different attributes. Similar to first example we perform seekbar changed listener event which is used in getting the changes done in the progress and then those changed value of progress is displayed by using a Toast.

    Download Code ?

    custom seekbar example android

    Step 1: Create a new project and name it SeekBarExample

    Step 2: Open res -> layout -> activity_main.xml (or) main.xml and add following code:

    In this step we open xml file and add the code for displaying a vertical seekbar by using its different attributes like max, default progress etc. In this xml for displaying a vertical seekbar we used a rotational attribute and set 270 value for that.

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity">
    
        <SeekBar
            android:id="@+id/customSeekBar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
           android:layout_centerInParent="true"
            android:max="200"
            android:progress="40"
            android:thumb="@drawable/thumb_icon"
            android:rotation="270"
            android:progressDrawable="@drawable/custom_progress"/>
    
    </RelativeLayout>

    Step 3:  Create an xml file  in drawable -> custom_progress.xml

    In this step we create a custom drawable xml for the seek bar. In this xml we create a layer list in which we create an item and then set the gradient colors for our custom seek bar.

    <?xml version="1.0" encoding="UTF-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
          
           <shape>
                <gradient android:useLevel="true"
                          android:startColor="#560" 
                          android:endColor="#454455"/>
           </shape>
        </item>
    </layer-list>
    

    Step 4: Open   src -> package -> MainActivity.java

    In this step we open MainActivity and here we add the code to initiate the vertical seekbar and then perform seek bar changed listener event for getting the changes in the progress of the seek bar. By using this event listener we get the current progress value of a seek bar and when a user stop the tracking touch, that value of progress is displayed by using a Toast.

    package example.gb.seekbarexample;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.SeekBar;
    import android.widget.Button;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
    
        Button submitButton;
        SeekBar customSeekBar;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            // initiate  views
            customSeekBar =(SeekBar)findViewById(R.id.customSeekBar);
            // perform seek bar change listener event used for getting the progress value
            customSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                int progressChangedValue = 0;
    
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                    progressChangedValue = progress;
                }
    
                public void onStartTrackingTouch(SeekBar seekBar) {
                    // TODO Auto-generated method stub
                }
    
                public void onStopTrackingTouch(SeekBar seekBar) {
                    Toast.makeText(MainActivity.this, "Seek bar progress is :" + progressChangedValue,
                            Toast.LENGTH_SHORT).show();
                }
            });
    
        }
    
        
    }

    Continue Reading:

    • DatePicker Tutorial With Example in Android Studio
    • AnalogClock, DigitalClock And TextClock Tutorial With Example in Android Studio
    • ExpandableListView Tutorial With Example in Android Studio
    • Chronometer Tutorial With Example in Android Studio
    • Zoom Controls Tutorial With Example in Android Studio

     A SeekBar is an extension of ProgressBar that adds a draggable thumb. The user can touch the thumb and drag left or right to set the current progress level or use the arrow keys .

    In the previous tutorial we have seen basic example of Android SeekBar , In this tutorial we will see how to style it’s thumb and progress track .

    1 SeekBar Thumb

    To Change SeekBar Thumb we use android:thumb attribute or property of seekbar widget , the below drawable is set to this attribute.  android:thumb=»@drawable/seekbar_thumb»

    1.a  Shape Thumb:

    <ripple xmlns:android="http://schemas.android.com/apk/res/android"
            android:color="@color/colorAccent">
        <item>
            <shape android:shape="oval">
                <solid android:color="@color/colorAccent"/>
                <size android:width="30dp" android:height="30dp"/>
            </shape>
        </item>
    </ripple>

    1.b Drawable Thumb: 

    The flower01 is png image kept inside res/drawable .

    <?xml version="1.0" encoding="utf-8"?>
    <ripple xmlns:android="http://schemas.android.com/apk/res/android"
            android:color="?android:colorControlHighlight">
        <item android:drawable="@drawable/flower01">
        </item>
    </ripple>

    2. SeekBar Progress Track

    To Change SeekBar Progress we use ndroid:progressDrawable attribute or property of seekbar widget , the below drawable is set to this attribute. android:progressDrawable=»@drawable/seekbar_progress_style» .

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:id="@android:id/background"
              android:drawable="@drawable/seekbar_track">
        </item>
    
        <item android:id="@android:id/progress">
            <clip android:drawable="@drawable/seekbar_progress"/>
        </item>
    </layer-list>

    In the above xml

    Track: item with id @android:id/background will set to seekbar track .


    Progress : item with id android:id=»@android:id/progress» will set to progress .

    Track
    file: seekbar_track.xml

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <shape>
                <corners android:radius="5dp"/>
                <gradient
                        android:angle="270"
                        android:centerColor="#11000000"
                        android:centerY="0.2"
                        android:endColor="#11000000"
                        android:startColor="#33000000"
                        android:type="linear"/>
            </shape>
        </item>
    </layer-list>

    Progress
    file: seekbar_progress.xml

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:id="@+id/progressshape">
            <clip>
                <shape android:shape="rectangle">
                    <size android:height="5dp"/>
                    <corners android:radius="5dp"/>
                    <solid android:color="#3db5ea"/>
                </shape>
            </clip>
        </item>
    </layer-list>

    Applying Above Defined Style to Seekbar

    <androidx.appcompat.widget.AppCompatSeekBar
    		android:layout_marginTop="50dp"
    		android:layout_width="match_parent"
    		android:layout_height="wrap_content"
    		android:id="@+id/seekbar01"
    		android:maxHeight="8dp"
    		android:progressDrawable="@drawable/seekbar_progress_style"
    		android:thumb="@drawable/seekbar_thumb_shape"
    		android:thumbOffset="0dp"/>

    SeekBar — это расширение ProgressBar, которое представляет собой слайдер. С его помощью пользователь может перемещать ползунок, устанавливая нужное значение прогресса. Например, с помощью слайдера можно регулировать уровень яркости или громкости.

    Чтобы добавить SeekBar на активность, достаточно определить его XML.

    <SeekBar
        android:id="@+id/seek"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

    Если вам нужно задать изначальный прогресс, то это можно сделать с помощью XML или программно.

    1. Через XML
      В коде разметки нужно добавить атрибут android:progress и передать в него уровень достигнутого прогресса.

      <SeekBar
          android:id="@+id/seek"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:progress="50"
          />

      По умолчанию максимальный прогресс равен 100, однако его можно изменить с помощью атрибута android:max.

      <SeekBar
          android:id="@+id/seek"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:max="150"
          android:progress="50"
          />
    2. Программно
      В коде активности нужно определить экземпляр SeekBar и затем указать прогресс с помощью метода setProgress(), в аргументы которого передаётся значение прогресса.

      SeekBar seekBar = findViewById(R.id.seek);
      seekBar.setProgress(50);

      Кроме того, можно не задавать конкретный прогресс, а увеличивать текущий на определенную величину. Для этого можно воспользоваться методом incrementProgressBy().

      seekBar.setProgress(40); // прогресс = 40
      seekBar.incrementProgressBy(50); // прогресс = 90

      Аналогично способу в XML, можно программно задать максимальное значение прогресса следующим образом.

      seekBar.setMax(150);

    Если вы хотите узнать текущий прогресс и его максимальное значение, вы можете воспользоваться методами getProgress() и getMax() соответственно.

    К SeekBar можно добавить слушатель, который будет получать изменение прогресса. Сделать это можно с помощью метода setOnSeekBarChangeListener().

    seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
      @Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
    
      }
    
      @Override public void onStartTrackingTouch(SeekBar seekBar) {
    
      }
    
      @Override public void onStopTrackingTouch(SeekBar seekBar) {
    
      }
    });

    При этом будут реализованы 3 следующих метода:

    • onProgressChanged() — уведомляет о том, что в SeekBar произошли изменения (например, изменён прогресс).
    • onStartTrackingTouch() — уведомляет о том, что пользователь прикоснулся к ползунку.
    • onStopTrackingTouch() — уведомляет о том, что пользователь перестал касаться ползунка.

    Настроим слушатель, чтобы он изменял уровень прозрачности фона у кнопки в зависимости от прогресса. Для этого в XML добавим Button.

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="ru.androidtools.tutorial.MainActivity"
        >
    
      <SeekBar
          android:id="@+id/seek"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_centerInParent="true"
          android:padding="6dp"
          android:progress="100"
          />
    
      <Button
          android:id="@+id/btn_test"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_below="@id/seek"
          android:layout_centerHorizontal="true"
          android:layout_marginTop="10dp"
          android:text="Тестовая кнопка"
          />
    
    </RelativeLayout>

    Затем определим экземпляр Button в коде активности и после этого в методе onProgressChanged добавим изменение прозрачности. Также добавим всплывающие сообщение, сообщающие о срабатывании методов onStartTrackingTouch() и onStopTrackingTouch().

    SeekBar seekBar = findViewById(R.id.seek);
    final Button btn_test = findViewById(R.id.btn_test);
    seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
      @Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
        btn_test.getBackground().setAlpha((int) (i * 2.55));
      }
    
      @Override public void onStartTrackingTouch(SeekBar seekBar) {
        Toast.makeText(getApplicationContext(), "Пользователь коснулся", Toast.LENGTH_SHORT).show();
      }
    
      @Override public void onStopTrackingTouch(SeekBar seekBar) {
        Toast.makeText(getApplicationContext(), "Пользователь перестал касаться",
            Toast.LENGTH_SHORT).show();
      }
    });

    В результате получим следующее:

    У SeekBar существует возможность кастомизации, заключающаяся в изменении полосы прогресса и ползунка на какой-либо свой.

    Чтобы изменить полосу прогресса, нужно создать XML Drawable. Для этого в папке res/drawable создадим файл seek_bg.xml.

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
      <item>
        <shape>
          <gradient
              android:endColor="#fff"
              android:startColor="#f00"
              android:useLevel="true"/>
        </shape>
      </item>
    </layer-list>

    Затем в коде разметки воспользуемся атрибутом android:progressDrawable и передадим в него созданный файл.

    <SeekBar
        android:id="@+id/seek"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:progress="100"
        android:progressDrawable="@drawable/seek_bg"
        />

    Таким образом, можно легко изменить полосу прогресса у слайдера.

    Аналогично можно заменить ползунок. Для этого нужно воспользоваться атрибутом android:thumb, в значении которого указать изображение, которое вы хотите использовать в качестве ползунка.

    <SeekBar
        android:id="@+id/seek"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:progress="100"
        android:progressDrawable="@drawable/seek_bg"
        android:thumb="@drawable/ic_test"
        />

    Например:

    Понравилась статья? Поделить с друзьями:
  • Как изменить цвет scrollbar css
  • Как изменить цвет rgb светодиода
  • Как изменить цвет rgb подсветки на видеокарте
  • Как изменить цвет rgb кулера
  • Как изменить цвет razer deathstalker