List of usage examples for android.view View invalidate
public void invalidate()
From source file:android.support.v17.leanback.app.BaseSupportFragment.java
/** * When fragment finishes loading data, it should call startEntranceTransition() * to execute the entrance transition.//w w w.j ava 2s . c o m * startEntranceTransition() will start transition only if both two conditions * are satisfied: * <li> prepareEntranceTransition() was called.</li> * <li> has not executed entrance transition yet.</li> * <p> * If startEntranceTransition() is called before onViewCreated(), it will be pending * and executed when view is created. */ public void startEntranceTransition() { if (!mEntranceTransitionEnabled || mEntranceTransition != null) { return; } // if view is not created yet, delay until onViewCreated() if (getView() == null) { mStartEntranceTransitionPending = true; return; } // wait till views get their initial position before start transition final View view = getView(); view.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { view.getViewTreeObserver().removeOnPreDrawListener(this); internalCreateEntranceTransition(); mEntranceTransitionEnabled = false; runEntranceTransition(mEntranceTransition); return false; } }); view.invalidate(); }
From source file:org.alfresco.mobile.android.application.fragments.sync.SyncCursorAdapter.java
@Override public void bindView(View view, Context context, Cursor cursor) { // int[] layouts = GridAdapterHelper.getGridLayoutId(context, // (GridFragment) fragmentRef.get()); if (view.findViewById(R.id.app_grid_progress) == null) { // ((ViewGroup) view).removeAllViews(); view.invalidate(); view.refreshDrawableState();/*from w w w . java2 s .c o m*/ return; } TwoLinesProgressViewHolder vh = (TwoLinesProgressViewHolder) view.getTag(); updateControls(vh, cursor); }
From source file:com.vuze.android.remote.spanbubbles.SpanTags.java
public void setTagBubbles(final SpannableStringBuilder ss, String text, String token) { if (ss.length() > 0) { // hack to ensure descent is always added by TextView ss.append("\u200B"); }/*from w w w. j av a 2 s .com*/ if (tvTags == null) { Log.e(TAG, "no tvTags"); return; } TextPaint p = tvTags.getPaint(); // Start and end refer to the points where the span will apply int tokenLen = token.length(); int base = 0; if (showIcon && tagDrawables == null) { createDrawTagables(); } while (true) { int start = text.indexOf(token, base); int end = text.indexOf(token, start + tokenLen); if (start < 0 || end < 0) { break; } base = end + tokenLen; final int fSpanStart = start; final int fSpanEnd = end + tokenLen; String id = text.substring(start + tokenLen, end); Map mapTag = null; try { long tagUID = Long.parseLong(id); mapTag = sessionInfo.getTag(tagUID); } catch (Throwable ignore) { } final String word = MapUtils.getMapString(mapTag, "name", "" + id); final Map fMapTag = mapTag; final DrawableTag imgDrawable = new DrawableTag(context, p, word, showIcon ? tagDrawables : null, mapTag, drawCount) { @Override public boolean isTagPressed() { if (!AndroidUtils.usesNavigationControl()) { return false; } int selectionEnd = tvTags.getSelectionEnd(); if (selectionEnd < 0) { return false; } int selectionStart = tvTags.getSelectionStart(); return selectionStart == fSpanStart && selectionEnd == fSpanEnd; } @Override public int getTagState() { if (listener == null) { return TAG_STATE_SELECTED; } return listener.getTagState(fMapTag, word); } }; if (countFontRatio > 0) { imgDrawable.setCountFontRatio(countFontRatio); } imgDrawable.setBounds(0, 0, imgDrawable.getIntrinsicWidth(), imgDrawable.getIntrinsicHeight()); // Log.d(TAG, "State=" + Arrays.toString(imgDrawable.getState())); if (listener != null && showIcon) { int tagState = listener.getTagState(mapTag, word); int[] state = makeState(tagState, mapTag == null, false); imgDrawable.setState(state); } ImageSpan imageSpan = new ImageSpan(imgDrawable, DynamicDrawableSpan.ALIGN_BASELINE) { @Override public int getSize(Paint paint, CharSequence text, int start, int end, Paint.FontMetricsInt fm) { int size = super.getSize(paint, text, start, end, fm); int width = -1; if (tvTags.getLayoutParams().width == ViewGroup.LayoutParams.WRAP_CONTENT) { if (tvTags.getParent() instanceof ViewGroup) { width = ((ViewGroup) tvTags.getParent()).getWidth(); } } else { width = tvTags.getWidth(); } if (width <= 0) { return size; } return Math.min(size, width); } }; ss.setSpan(imageSpan, start, end + tokenLen, 0); if (listener != null) { ClickableSpan clickSpan = new ClickableSpan() { @Override public void onClick(View widget) { listener.tagClicked(fMapTag, word); if (AndroidUtils.hasTouchScreen()) { Selection.removeSelection((Spannable) tvTags.getText()); } widget.invalidate(); } }; ss.setSpan(clickSpan, start, end + tokenLen, 0); } } }
From source file:com.supremainc.biostar2.base.BaseListAdapter.java
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { mLastClickItemPosition = position;/*from w w w. ja va 2 s . c om*/ setSelector(view.getTag(), position); if (mOnItemClickListener != null) { mOnItemClickListener.onItemClick(parent, view, position, id); } if (mListView.getChoiceMode() == ListView.CHOICE_MODE_SINGLE) { notifyDataSetChanged(); } else { view.invalidate(); } }
From source file:com.mothership.tvhome.app.BaseFragment.java
/** * When fragment finishes loading data, it should call startEntranceTransition() * to execute the entrance transition.//from www . j ava 2 s .com * startEntranceTransition() will start transition only if both two conditions * are satisfied: * <li> prepareEntranceTransition() was called.</li> * <li> has not executed entrance transition yet.</li> * <p> * If startEntranceTransition() is called before onViewCreated(), it will be pending * and executed when view is created. */ public void startEntranceTransition() { if (!mEntranceTransitionEnabled || mEntranceTransition != null) { return; } // if view is not created yet, delay until onViewCreated() if (getView() == null) { mStartEntranceTransitionPending = true; return; } if (mEntranceTransitionPreparePending) { mEntranceTransitionPreparePending = false; onEntranceTransitionPrepare(); } // wait till views get their initial position before start transition final View view = getView(); view.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { view.getViewTreeObserver().removeOnPreDrawListener(this); internalCreateEntranceTransition(); mEntranceTransitionEnabled = false; if (mEntranceTransition != null) { onEntranceTransitionStart(); runEntranceTransition(mEntranceTransition); } return false; } }); view.invalidate(); }
From source file:com.android.launcher3.BubbleTextView.java
/** * Applies the item info if it is same as what the view is pointing to currently. *///from w ww . j a va 2s . com public void reapplyItemInfo(final ItemInfo info) { if (getTag() == info) { FastBitmapDrawable.State prevState = FastBitmapDrawable.State.NORMAL; if (mIcon instanceof FastBitmapDrawable) { prevState = ((FastBitmapDrawable) mIcon).getCurrentState(); } mIconLoadRequest = null; mDisableRelayout = true; if (info instanceof AppInfo) { applyFromApplicationInfo((AppInfo) info); } else if (info instanceof ShortcutInfo) { applyFromShortcutInfo((ShortcutInfo) info, LauncherAppState.getInstance().getIconCache()); if ((info.rank < FolderIcon.NUM_ITEMS_IN_PREVIEW) && (info.container >= 0)) { View folderIcon = mLauncher.getWorkspace().getHomescreenIconByItemId(info.container); if (folderIcon != null) { folderIcon.invalidate(); } } } else if (info instanceof PackageItemInfo) { applyFromPackageItemInfo((PackageItemInfo) info); } // If we are reapplying over an old icon, then we should update the new icon to the same // state as the old icon if (mIcon instanceof FastBitmapDrawable) { ((FastBitmapDrawable) mIcon).setState(prevState); } mDisableRelayout = false; } }
From source file:ru.adios.budgeter.widgets.DataTableLayout.java
public void disableUserOrdering() { orderResolver = Optional.empty(); if (getChildCount() > 0) { final TableRow columnsRow = (TableRow) getChildAt(2); for (int i = 0; i < columnsRow.getChildCount(); i++) { final View childAt = columnsRow.getChildAt(i); if (childAt.isSelected()) { childAt.setSelected(false); childAt.invalidate(); break; }/*from w w w . ja v a 2 s . co m*/ } } }
From source file:com.jhk.whysoformal.activity.musiclist.fragment.MusicListFragment.java
private void showItemWeightPopUp() { if (mItemWeight == null) { mItemWeight = new PopupWindow(getListView()); View view = getActivity().getLayoutInflater().inflate(R.layout.popup_weight_distribution, null); LinearLayout distributionLayout = (LinearLayout) view.findViewById(R.id.distributionLayout); Context ctx = mItemWeight.getContentView().getContext(); BaseSeries data = new BaseSeries(getString(R.string.weight_distribution), new float[][] { new float[] { 0.0f, 2.0f }, new float[] { 1.0f, 1.0f }, new float[] { 2.0f, 1.0f }, new float[] { 3.0f, 1.0f }, new float[] { 4.0f, 1.0f } }, 10, new GraphStyleAttributes(Color.BLUE, 20f, 3f)); List<BaseSeries> entries = new LinkedList<BaseSeries>(); entries.add(data);/*from w w w .ja v a 2 s . com*/ distributionLayout.addView(new GraphView(ctx, entries, getString(R.string.distribute_me), new BaseAxis(0, 4, 1, 10, GraphStyleAttributes.sDEFAULT_X_AXIS_LABEL_STYLE_ATTRIBUTES), new BaseAxis(0, 2, 1, 10, GraphStyleAttributes.sDEFAULT_Y_AXIS_LABEL_STYLE_ATTRIBUTES))); view.invalidate(); Button okayButton = (Button) view.findViewById(R.id.weight_distribution_ok_button); okayButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mItemWeight.dismiss(); } }); mItemWeight.setFocusable(true); mItemWeight.setWidth(WindowManager.LayoutParams.WRAP_CONTENT); mItemWeight.setHeight(600); mItemWeight.setContentView(view); } mItemWeight.showAtLocation(getListView(), Gravity.CENTER, 0, 0); }
From source file:com.meinv.ui.activity.HomeActivity.java
@Override public void initializeViews(List<BaseLazyFragment> fragments, List<NavigationEntity> navigationList) { mActionBarDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, mToolbar, R.string.drawer_open, R.string.drawer_close) {// w w w. java 2 s .com @Override public void onDrawerSlide(View drawerView, float slideOffset) { View mContent = mDrawerLayout.getChildAt(0); View mMenu = drawerView; float scale = 1 - slideOffset; float rightScale = 0.8f + scale * 0.2f; if (drawerView.getTag() == null) { return; } if (drawerView.getTag().equals("LEFT")) { float leftScale = 1 - 0.3f * scale; // ViewHelper.setScaleX(mMenu, leftScale); // ViewHelper.setScaleY(mMenu, leftScale); ViewHelper.setAlpha(mMenu, 0.6f + 0.4f * (1 - scale)); ViewHelper.setTranslationX(mContent, mMenu.getMeasuredWidth() * (1 - scale)); ViewHelper.setPivotX(mContent, 0); ViewHelper.setPivotY(mContent, mContent.getMeasuredHeight() / 2); mContent.invalidate(); ViewHelper.setScaleX(mContent, rightScale); ViewHelper.setScaleY(mContent, rightScale); } else { ViewHelper.setTranslationX(mContent, -mMenu.getMeasuredWidth() * slideOffset); ViewHelper.setPivotX(mContent, mContent.getMeasuredWidth()); ViewHelper.setPivotY(mContent, mContent.getMeasuredHeight() / 2); mContent.invalidate(); ViewHelper.setScaleX(mContent, rightScale); ViewHelper.setScaleY(mContent, rightScale); } } @Override public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); setTitle(getString(R.string.app_name)); } @Override public void onDrawerClosed(View drawerView) { super.onDrawerClosed(drawerView); if (null != mNavListAdapter) { setTitle(mNavListAdapter.getItem(mCurrentMenuCheckedPos).getName()); } } }; mActionBarDrawerToggle.setDrawerIndicatorEnabled(true); mDrawerLayout.setDrawerListener(mActionBarDrawerToggle); if (null != fragments && !fragments.isEmpty()) { mViewPager.setEnableScroll(false); mViewPager.setOffscreenPageLimit(fragments.size()); mVpAdapter = new VPFragmentAdapter(getSupportFragmentManager(), fragments); mViewPager.setAdapter(mVpAdapter); } mNavListAdapter = new ListViewDataAdapter<NavigationEntity>(new ViewHolderCreator<NavigationEntity>() { @Override public ViewHolderBase<NavigationEntity> createViewHolder(int position) { return new ViewHolderBase<NavigationEntity>() { ImageView itemIcon; TextView itemName; @Override public View createView(LayoutInflater layoutInflater) { View convertView = layoutInflater.inflate(R.layout.list_item_navigation, null); itemIcon = ButterKnife.findById(convertView, R.id.list_item_navigation_icon); itemName = ButterKnife.findById(convertView, R.id.list_item_navigation_name); return convertView; } @Override public void showData(int i, NavigationEntity navigationEntity) { itemIcon.setImageResource(navigationEntity.getIconResId()); itemName.setText(navigationEntity.getName()); if (mCurrentMenuCheckedPos == i) { // checked itemName.setTextColor(getResources().getColor(mCheckedListItemColorResIds[i])); } else { // unchecked itemName.setTextColor(getResources().getColor(android.R.color.black)); } } }; } }); mNavListView.setAdapter(mNavListAdapter); mNavListAdapter.getDataList().addAll(navigationList); mNavListAdapter.notifyDataSetChanged(); setTitle(mNavListAdapter.getItem(mCurrentMenuCheckedPos).getName()); mNavListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { mCurrentMenuCheckedPos = position; mSearchItem.setVisible(mCurrentMenuCheckedPos == 0); mSearchItem.collapseActionView(); mNavListAdapter.notifyDataSetChanged(); mDrawerLayout.closeDrawer(Gravity.LEFT); mViewPager.setCurrentItem(mCurrentMenuCheckedPos, false); } }); setupBannerAdForView(mRlLeft); // setupBannerAd(); }
From source file:com.linkbubble.ui.BubbleFlowView.java
void updateScaleForView(View view, float centerX, float viewX) { float xDelta = Math.abs(centerX - viewX); float targetScale; if (xDelta < mFullScaleX) { targetScale = 1.f;//www . j a v a 2 s . c o m } else if (xDelta > mMinScaleX) { targetScale = MIN_SCALE; } else { float ratio = 1.f - ((xDelta - mFullScaleX) / (mMinScaleX - mFullScaleX)); targetScale = MIN_SCALE + (ratio * (1.f - MIN_SCALE)); } float scaleDelta = Math.abs(getScaleX() - targetScale); view.setScaleX(targetScale); view.setScaleY(targetScale); if (scaleDelta > .001f) { view.invalidate(); } }