Example usage for android.support.v4.content ContextCompat getDrawable

List of usage examples for android.support.v4.content ContextCompat getDrawable

Introduction

In this page you can find the example usage for android.support.v4.content ContextCompat getDrawable.

Prototype

public static final Drawable getDrawable(Context context, int i) 

Source Link

Usage

From source file:com.h6ah4i.android.example.advrecyclerview.demo_s_vertical.VerticalSwipeableExampleFragment.java

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    //noinspection ConstantConditions
    mRecyclerView = (RecyclerView) getView().findViewById(R.id.recycler_view);
    mLayoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);

    // touch guard manager  (this class is required to suppress scrolling while swipe-dismiss animation is running)
    mRecyclerViewTouchActionGuardManager = new RecyclerViewTouchActionGuardManager();
    mRecyclerViewTouchActionGuardManager.setInterceptVerticalScrollingWhileAnimationRunning(true);
    mRecyclerViewTouchActionGuardManager.setEnabled(true);

    // swipe manager
    mRecyclerViewSwipeManager = new RecyclerViewSwipeManager();

    //adapter//  ww w  . j ava 2 s . co m
    final VerticalSwipeableExampleAdapter myItemAdapter = new VerticalSwipeableExampleAdapter(
            getDataProvider());
    myItemAdapter.setEventListener(new VerticalSwipeableExampleAdapter.EventListener() {
        @Override
        public void onItemRemoved(int position) {
            ((VerticalSwipeableExampleActivity) getActivity()).onItemRemoved(position);
        }

        @Override
        public void onItemPinned(int position) {
            ((VerticalSwipeableExampleActivity) getActivity()).onItemPinned(position);
        }

        @Override
        public void onItemViewClicked(View v, boolean pinned) {
            onItemViewClick(v, pinned);
        }
    });

    mAdapter = myItemAdapter;

    mWrappedAdapter = mRecyclerViewSwipeManager.createWrappedAdapter(myItemAdapter); // wrap for swiping

    final GeneralItemAnimator animator = new SwipeDismissItemAnimator();

    // Change animations are enabled by default since support-v7-recyclerview v22.
    // Disable the change animation in order to make turning back animation of swiped item works properly.
    animator.setSupportsChangeAnimations(false);

    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setAdapter(mWrappedAdapter); // requires *wrapped* adapter
    mRecyclerView.setItemAnimator(animator);

    // additional decorations
    //noinspection StatementWithEmptyBody
    if (supportsViewElevation()) {
        // Lollipop or later has native drop shadow feature. ItemShadowDecorator is not required.
    } else {
        mRecyclerView.addItemDecoration(new ItemShadowDecorator(
                (NinePatchDrawable) ContextCompat.getDrawable(getContext(), R.drawable.material_shadow_z1)));
    }
    mRecyclerView.addItemDecoration(new SimpleListDividerDecorator(null,
            ContextCompat.getDrawable(getContext(), R.drawable.list_divider_v), true));

    // NOTE:
    // The initialization order is very important! This order determines the priority of touch event handling.
    //
    // priority: TouchActionGuard > Swipe > DragAndDrop
    mRecyclerViewTouchActionGuardManager.attachRecyclerView(mRecyclerView);
    mRecyclerViewSwipeManager.attachRecyclerView(mRecyclerView);

    // for debugging
    //        animator.setDebug(true);
    //        animator.setMoveDuration(2000);
    //        animator.setRemoveDuration(2000);
    //        mRecyclerViewSwipeManager.setMoveToOutsideWindowAnimationDuration(2000);
    //        mRecyclerViewSwipeManager.setReturnToDefaultPositionAnimationDuration(2000);
}

From source file:com.classiqo.nativeandroid_32bitz.ui.FullScreenPlayerActivity.java

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_full_player);
    initializeToolbar();/*from www .j a  v a2  s.  co m*/
    if (getSupportActionBar() != null) {
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setTitle("");
    }

    mBackgroundImage = (ImageView) findViewById(R.id.background_image);
    mPauseDrawable = ContextCompat.getDrawable(this, R.drawable.uamp_ic_pause_white_48dp);
    mPlayDrawable = ContextCompat.getDrawable(this, R.drawable.uamp_ic_play_arrow_white_48dp);
    mPlayPause = (ImageView) findViewById(R.id.play_pause);
    mSkipNext = (ImageView) findViewById(R.id.next);
    mSkipPrev = (ImageView) findViewById(R.id.prev);
    mStart = (TextView) findViewById(R.id.startText);
    mEnd = (TextView) findViewById(R.id.endText);
    mSeekbar = (SeekBar) findViewById(R.id.seekBar1);
    mLine1 = (TextView) findViewById(R.id.line1);
    mLine2 = (TextView) findViewById(R.id.line2);
    mLine3 = (TextView) findViewById(R.id.line3);
    mLoading = (ProgressBar) findViewById(R.id.progressBar1);
    mControllers = findViewById(R.id.controllers);

    mSkipNext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            MediaControllerCompat.TransportControls controls = getSupportMediaController()
                    .getTransportControls();
            controls.skipToNext();
        }
    });

    mSkipPrev.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            MediaControllerCompat.TransportControls controls = getSupportMediaController()
                    .getTransportControls();
            controls.skipToPrevious();
        }
    });

    mPlayPause.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            PlaybackStateCompat state = getSupportMediaController().getPlaybackState();
            if (state != null) {
                MediaControllerCompat.TransportControls controls = getSupportMediaController()
                        .getTransportControls();
                switch (state.getState()) {
                case PlaybackStateCompat.STATE_PLAYING: // fall through
                case PlaybackStateCompat.STATE_BUFFERING:
                    controls.pause();
                    stopSeekbarUpdate();
                    break;
                case PlaybackStateCompat.STATE_PAUSED:
                case PlaybackStateCompat.STATE_STOPPED:
                    controls.play();
                    scheduleSeekbarUpdate();
                    break;
                default:
                    LogHelper.d(TAG, "onClick with state ", state.getState());
                }
            }
        }
    });

    mSeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            mStart.setText(DateUtils.formatElapsedTime(progress / 1000));
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            stopSeekbarUpdate();
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            getSupportMediaController().getTransportControls().seekTo(seekBar.getProgress());
            scheduleSeekbarUpdate();
        }
    });

    // Only update from the intent if we are not recreating from a config change:
    if (savedInstanceState == null) {
        updateFromParams(getIntent());
    }

    mMediaBrowser = new MediaBrowserCompat(this, new ComponentName(this, MusicService.class),
            mConnectionCallback, null);
}

From source file:click.kobaken.rxirohaandroid_sample.view.activity.MainActivity.java

private void initToolbar() {
    binding.toolbar.setTitle(getString(R.string.receive));
    binding.toolbar.setNavigationIcon(/*ww w . ja  v a 2  s . c  o m*/
            ContextCompat.getDrawable(getApplicationContext(), R.drawable.ic_menu_white_24dp));
    binding.toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            binding.drawerLayout.openDrawer(GravityCompat.START);
        }
    });
}

From source file:com.example.chinyao.mow.mow.recycler.SwipeableFragment.java

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    //noinspection ConstantConditions
    mRecyclerView = (RecyclerView) getView().findViewById(R.id.recycler_view);
    mLayoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false);

    // touch guard manager  (this class is required to suppress scrolling while swipe-dismiss animation is running)
    mRecyclerViewTouchActionGuardManager = new RecyclerViewTouchActionGuardManager();
    mRecyclerViewTouchActionGuardManager.setInterceptVerticalScrollingWhileAnimationRunning(true);
    mRecyclerViewTouchActionGuardManager.setEnabled(true);

    // swipe manager
    mRecyclerViewSwipeManager = new RecyclerViewSwipeManager();

    //adapter// ww  w  .  j  a v a2s  .  co m
    final SwipeableAdapter myItemAdapter = new SwipeableAdapter(getDataProvider());
    myItemAdapter.setEventListener(new SwipeableAdapter.EventListener() {
        @Override
        public void onItemRemoved(int position) {
            ((MowActivity) getActivity()).onItemRemoved(position);
        }

        @Override
        public void onItemPinned(int position) {
            ((MowActivity) getActivity()).onItemPinned(position);
        }

        @Override
        public void onItemViewClicked(View v, boolean pinned) {
            onItemViewClick(v, pinned);
        }

        @Override
        public boolean onItemViewLongClicked(View v, boolean pinned) {
            return onItemViewLongClick(v, pinned);
        }
    });

    mAdapter = myItemAdapter;

    mWrappedAdapter = mRecyclerViewSwipeManager.createWrappedAdapter(myItemAdapter); // wrap for swiping

    final GeneralItemAnimator animator = new SwipeDismissItemAnimator();

    // Change animations are enabled by default since support-v7-recyclerview v22.
    // Disable the change animation in order to make turning back animation of swiped item works properly.
    animator.setSupportsChangeAnimations(false);

    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setAdapter(mWrappedAdapter); // requires *wrapped* adapter
    mRecyclerView.setItemAnimator(animator);

    // additional decorations
    //noinspection StatementWithEmptyBody
    if (supportsViewElevation()) {
        // Lollipop or later has native drop shadow feature. ItemShadowDecorator is not required.
    } else {
        mRecyclerView.addItemDecoration(new ItemShadowDecorator(
                (NinePatchDrawable) ContextCompat.getDrawable(getContext(), R.drawable.material_shadow_z1)));
    }
    mRecyclerView.addItemDecoration(new SimpleListDividerDecorator(
            ContextCompat.getDrawable(getContext(), R.drawable.list_divider_h), true));

    // NOTE:
    // The initialization order is very important! This order determines the priority of touch event handling.
    //
    // priority: TouchActionGuard > Swipe > DragAndDrop
    mRecyclerViewTouchActionGuardManager.attachRecyclerView(mRecyclerView);
    mRecyclerViewSwipeManager.attachRecyclerView(mRecyclerView);

    // for debugging
    //        animator.setDebug(true);
    //        animator.setMoveDuration(2000);
    //        animator.setRemoveDuration(2000);
    //        mRecyclerViewSwipeManager.setMoveToOutsideWindowAnimationDuration(2000);
    //        mRecyclerViewSwipeManager.setReturnToDefaultPositionAnimationDuration(2000);
}

From source file:com.heinrichreimersoftware.materialdrawer.adapter.DrawerAdapter.java

@NonNull
@Override/*from  www  . jav  a2  s .c  o m*/
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
    DrawerItem drawerItem = getItem(position);
    DrawerTheme drawerTheme = this.drawerTheme;

    assert drawerItem != null;

    if (drawerItem.hasDrawerTheme()) {
        drawerTheme = drawerItem.getDrawerTheme();
    }

    if (drawerItem.isHeader()) {
        if (convertView == null || convertView instanceof LinearLayout) {
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.md_drawer_header_item, parent,
                    false);
        }

        final HeaderViewHolder viewHolder = new HeaderViewHolder(convertView);

        if (drawerTheme.isLightTheme()) {
            viewHolder.getHeaderDivider()
                    .setBackgroundColor(ContextCompat.getColor(getContext(), R.color.md_divider_light));
        } else {
            viewHolder.getHeaderDivider()
                    .setBackgroundColor(ContextCompat.getColor(getContext(), R.color.md_divider_dark));
        }

        DrawerHeaderItem drawerHeaderItem = (DrawerHeaderItem) drawerItem;

        viewHolder.getHeaderRoot().setBackgroundColor(drawerTheme.getBackgroundColor());

        if (drawerHeaderItem.hasTitle()) {
            viewHolder.getHeaderTitleRoot().setVisibility(View.VISIBLE);
            viewHolder.getHeaderRoot().setPadding(0,
                    getContext().getResources().getDimensionPixelSize(R.dimen.md_divider_margin), 0, 0);
            viewHolder.getHeaderTitle().setText(drawerHeaderItem.getTitle());
            viewHolder.getHeaderTitle().setTextColor(drawerTheme.getTextColorSecondary());
        } else {
            viewHolder.getHeaderTitleRoot().setVisibility(View.GONE);
            viewHolder.getHeaderRoot().setPadding(0,
                    getContext().getResources().getDimensionPixelSize(R.dimen.md_divider_margin), 0,
                    getContext().getResources().getDimensionPixelSize(R.dimen.md_divider_margin));
        }

    } else {
        if (convertView == null || !(convertView instanceof RelativeLayout)) {
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.md_drawer_item, parent, false);
        }

        final ViewHolder viewHolder = new ViewHolder(convertView);

        int iconTint = -1;
        int textColorPrimary = drawerTheme.getTextColorPrimary();

        if (drawerTheme.isLightTheme()) {
            viewHolder.getRoot()
                    .setForeground(ContextCompat.getDrawable(getContext(), R.drawable.md_selector_light));
        } else {
            viewHolder.getRoot()
                    .setForeground(ContextCompat.getDrawable(getContext(), R.drawable.md_selector_dark));
        }

        if (drawerTheme.getBackgroundColor() != 0) {
            viewHolder.getRoot().setBackgroundColor(drawerTheme.getBackgroundColor());
        } else {
            viewHolder.getRoot()
                    .setBackgroundColor(ContextCompat.getColor(getContext(), android.R.color.transparent));
        }

        if (position == selectedPosition) {
            viewHolder.getRoot().setSelected(true);

            textColorPrimary = iconTint = drawerTheme.getHighlightColor();
        } else {
            viewHolder.getRoot().setSelected(false);
        }

        if (drawerItem.hasImage()) {
            viewHolder.getImageView().setVisibility(View.VISIBLE);
            viewHolder.getImageView().setImageDrawable(drawerItem.getImage());

            int imageSize;

            if (drawerItem.getImageMode() == DrawerItem.AVATAR) {
                imageSize = getContext().getResources().getDimensionPixelSize(R.dimen.md_avatar_size);
            } else {
                imageSize = getContext().getResources().getDimensionPixelSize(R.dimen.md_icon_size);

                if (iconTint != -1 && drawerItem.getImageMode() == DrawerItem.ICON) {
                    viewHolder.getImageView().setColorFilter(iconTint, PorterDuff.Mode.SRC_IN);
                } else {
                    viewHolder.getImageView().getDrawable().clearColorFilter();
                }
            }

            ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) viewHolder.getImageView()
                    .getLayoutParams();
            layoutParams.height = imageSize;
            layoutParams.width = getContext().getResources().getDimensionPixelSize(R.dimen.md_baseline_content)
                    - getContext().getResources().getDimensionPixelSize(R.dimen.md_baseline);

            int imagePaddingEnd = getContext().getResources().getDimensionPixelSize(R.dimen.md_baseline_content)
                    - getContext().getResources().getDimensionPixelSize(R.dimen.md_baseline) - imageSize;

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
                viewHolder.getImageView().setPaddingRelative(0, 0, imagePaddingEnd, 0);
            } else {
                viewHolder.getImageView().setPadding(0, 0, imagePaddingEnd, 0);
            }

        } else {
            viewHolder.getImageView().setVisibility(View.GONE);
        }

        if (drawerItem.hasTextPrimary()) {
            viewHolder.getTextViewPrimary().setText(drawerItem.getTextPrimary());
            viewHolder.getTextViewPrimary().setTextColor(textColorPrimary);

            if (drawerItem.hasTextSecondary() && (drawerItem.getTextMode() == DrawerItem.TWO_LINE
                    || drawerItem.getTextMode() == DrawerItem.THREE_LINE)) {
                viewHolder.getTextViewSecondary().setText(drawerItem.getTextSecondary());
                viewHolder.getTextViewSecondary().setTextColor(drawerTheme.getTextColorSecondary());
                viewHolder.getTextViewSecondary().setVisibility(View.VISIBLE);

                if (drawerItem.getTextMode() == DrawerItem.THREE_LINE) {
                    viewHolder.getTextViewSecondary().setMaxLines(2);
                } else {
                    viewHolder.getTextViewSecondary().setMaxLines(1);
                }

            } else {
                viewHolder.getTextViewSecondary().setVisibility(View.GONE);
            }
        } else if (drawerItem.hasTextSecondary()) {
            viewHolder.getTextViewPrimary().setText(drawerItem.getTextPrimary());
            viewHolder.getTextViewPrimary().setTextColor(textColorPrimary);

            viewHolder.getTextViewSecondary().setVisibility(View.GONE);
        }
    }

    return convertView;
}

From source file:com.iutiao.sdk.views.PasswordEditText.java

private void showPasswordVisibilityIndicator(boolean shouldShowIcon) {
    if (shouldShowIcon) {
        Drawable drawable = mIsShowPwdIcon ? ContextCompat.getDrawable(getContext(), mHidePwdIcon)
                : ContextCompat.getDrawable(getContext(), mShowPwdIcon);

        // ??/* w ww. j  ava  2 s  .c o m*/
        setCompoundDrawablesWithIntrinsicBounds(null, null, drawable, null);

        mDrawableSide = drawable;
    } else {
        // ??
        setCompoundDrawables(null, null, null, null);
        mDrawableSide = null;
    }
}

From source file:com.arksh.summer.ui.zone.widget.ExpandableTextView.java

/**
 * ?//from  w  w  w.j ava2 s .  c o m
 * @param attrs
 */
private void init(AttributeSet attrs) {
    mCollapsedStatus = new SparseBooleanArray();

    TypedArray typedArray = getContext().obtainStyledAttributes(attrs, R.styleable.ExpandableTextView);
    mMaxCollapsedLines = typedArray.getInt(R.styleable.ExpandableTextView_maxCollapsedLines,
            MAX_COLLAPSED_LINES);
    mAnimationDuration = typedArray.getInt(R.styleable.ExpandableTextView_animDuration, DEFAULT_ANIM_DURATION);
    mExpandDrawable = typedArray.getDrawable(R.styleable.ExpandableTextView_expandDrawable);
    mCollapseDrawable = typedArray.getDrawable(R.styleable.ExpandableTextView_collapseDrawable);

    textCollapse = typedArray.getString(R.styleable.ExpandableTextView_textCollapse);
    textExpand = typedArray.getString(R.styleable.ExpandableTextView_textExpand);
    showExpandCollapseDrawable = typedArray
            .getBoolean(R.styleable.ExpandableTextView_showExpandCollapseDrawable, true);

    if (showExpandCollapseDrawable) {
        if (mExpandDrawable == null) {
            mExpandDrawable = ContextCompat.getDrawable(getContext(), R.drawable.icon_green_arrow_down);
        }
        if (mCollapseDrawable == null) {
            mCollapseDrawable = ContextCompat.getDrawable(getContext(), R.drawable.icon_green_arrow_up);
        }
    }

    if (TextUtils.isEmpty(textCollapse)) {
        textCollapse = getContext().getString(R.string.shink);
    }
    if (TextUtils.isEmpty(textExpand)) {
        textExpand = getContext().getString(R.string.expand);
    }
    contentTextColor = typedArray.getColor(R.styleable.ExpandableTextView_contentTextColor,
            ContextCompat.getColor(getContext(), R.color.light_gray));
    contentTextSize = typedArray.getDimension(R.styleable.ExpandableTextView_contentTextSize,
            DisplayUtil.sp2px(14));

    collapseExpandTextColor = typedArray.getColor(R.styleable.ExpandableTextView_collapseExpandTextColor,
            ContextCompat.getColor(getContext(), R.color.main_color));
    collapseExpandTextSize = typedArray.getDimension(R.styleable.ExpandableTextView_collapseExpandTextSize,
            DisplayUtil.sp2px(14));

    grarity = typedArray.getInt(R.styleable.ExpandableTextView_collapseExpandGrarity, Gravity.LEFT);

    typedArray.recycle();
    // enforces vertical orientation
    setOrientation(LinearLayout.VERTICAL);
    // default visibility is gone
    setVisibility(GONE);
}

From source file:com.google.blockly.android.ui.vertical.PatchManager.java

/**
 * Get a patch drawable./*from  w w  w . j  ava2  s .  c o m*/
 *
 * @param id The resource Id of the patch.
 * @return The drawable for the requested patch.
 */
public NinePatchDrawable getPatchDrawable(int id) {
    return (NinePatchDrawable) ContextCompat.getDrawable(mContext, id);
}

From source file:com.example.sam.savemeapp.StatisticsFragment.java

/**
 * Sets up the entries of the pie chart and colors associated with this entries.
 * After doing so this information will be added to a DataSet which contains information for the pie chart.
 * The if statements is used to avoid having empty entries show
 * up in the pie chart, they would be stacked un top of each other.
 *//*from  w  ww.  ja  v a2s . c  o m*/
public void setData() {
    if (u.categories.get("Food & Beverage").get("Food & Beverage") < 0) {
        yvalues.add(new PieEntry(-u.categories.get("Food & Beverage").get("Food & Beverage"), "Food & Beverage",
                ContextCompat.getDrawable(getContext(), R.drawable.food_bev_icon),
                Color.parseColor("#00a0ae")));
        colors.add(Color.parseColor("#49d7e8"));
    }
    if (u.categories.get("Transportation").get("Transportation") < 0) {
        yvalues.add(new PieEntry(-u.categories.get("Transportation").get("Transportation"), "Transportation",
                ContextCompat.getDrawable(getContext(), R.drawable.transp_icon), Color.parseColor("#be3127")));
        colors.add(Color.parseColor("#eb6056"));
    }
    if (u.categories.get("Shopping").get("Shopping") < 0) {
        yvalues.add(new PieEntry(-u.categories.get("Shopping").get("Shopping"), "Shopping",
                ContextCompat.getDrawable(getContext(), R.drawable.shopping_icon),
                Color.parseColor("#7dc725")));
        colors.add(Color.parseColor("#89dc27"));
    }
    if (u.categories.get("Entertainment").get("Entertainment") < 0) {
        yvalues.add(new PieEntry(-u.categories.get("Entertainment").get("Entertainment"), "Entertainment",
                ContextCompat.getDrawable(getContext(), R.drawable.entertainment_icon),
                Color.parseColor("#e88300")));
        colors.add(Color.parseColor("#f7a234"));
    }
    if (u.categories.get("Health").get("Health") < 0) {
        yvalues.add(new PieEntry(-u.categories.get("Health").get("Health"), "Health",
                ContextCompat.getDrawable(getContext(), R.drawable.health_icon), Color.parseColor("#dc006d")));
        colors.add(Color.parseColor("#f4507a"));
    }
    if (u.categories.get("Bills").get("Bills") < 0) {
        yvalues.add(new PieEntry(-u.categories.get("Bills").get("Bills"), "Bills",
                ContextCompat.getDrawable(getContext(), R.drawable.bills_icon), Color.parseColor("#1562a4")));
        colors.add(Color.parseColor("#3599ef"));
    }
    //This if statement secures that our "no data available" is shown.
    if (yvalues.size() != 0) {
        dataSet = new PieDataSet(yvalues, "");
        dataSet.setColors(colors);
        data = new PieData(dataSet);
        data.setValueFormatter(new PercentFormatter());
        pieChart.setData(data);
        setUpPiechart();
    }
}

From source file:com.apptentive.android.sdk.module.messagecenter.view.MessageCenterListView.java

public void initShadow(boolean visible) {
    if (visible) {
        if (shadowDrawable == null) {
            shadowDrawable = (GradientDrawable) ContextCompat.getDrawable(getContext(),
                    R.drawable.apptentive_listview_item_shadow);
            shadowHeight = (int) (4 * getResources().getDisplayMetrics().density);
        }//from  ww  w  .  j  a  v a 2 s  .co  m
    } else {
        if (shadowDrawable != null) {
            shadowDrawable = null;
            shadowHeight = 0;
        }
    }
}