當前位置: 首頁>>代碼示例>>Java>>正文


Java View.getDrawingCache方法代碼示例

本文整理匯總了Java中android.view.View.getDrawingCache方法的典型用法代碼示例。如果您正苦於以下問題:Java View.getDrawingCache方法的具體用法?Java View.getDrawingCache怎麽用?Java View.getDrawingCache使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在android.view.View的用法示例。


在下文中一共展示了View.getDrawingCache方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: createBitmapFromView

import android.view.View; //導入方法依賴的package包/類
/**
     * 得到傳入的view的bitmap
     * @param view
     * @return
     */
    @Deprecated
    public static Bitmap createBitmapFromView(View view) {
        Bitmap bitmap;
//        Rect rect = new Rect();
//        view.getGlobalVisibleRect(rect);

        view.setDrawingCacheEnabled(true);
        view.buildDrawingCache();
        Bitmap src = view.getDrawingCache();
        bitmap = Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight());
        view.destroyDrawingCache();
        view.setDrawingCacheEnabled(false);
        src.recycle();
        src = null;
        return bitmap;
    }
 
開發者ID:halohoop,項目名稱:UsoppBubble,代碼行數:22,代碼來源:Utils.java

示例2: getViewBitmap

import android.view.View; //導入方法依賴的package包/類
private Bitmap getViewBitmap(View v) {
    v.clearFocus();
    v.setPressed(false);

    boolean willNotCache = v.willNotCacheDrawing();
    v.setWillNotCacheDrawing(false);

    int color = v.getDrawingCacheBackgroundColor();
    v.setDrawingCacheBackgroundColor(0);

    if (color != 0) {
        v.destroyDrawingCache();
    }
    v.buildDrawingCache();
    Bitmap cacheBitmap = v.getDrawingCache();
    if (cacheBitmap == null) {
        return null;
    }

    Bitmap bitmap = Bitmap.createBitmap(cacheBitmap);

    v.destroyDrawingCache();
    v.setWillNotCacheDrawing(willNotCache);
    v.setDrawingCacheBackgroundColor(color);

    return bitmap;
}
 
開發者ID:l465659833,項目名稱:Bigbang,代碼行數:28,代碼來源:DragDropHelper.java

示例3: takeScreenShot

import android.view.View; //導入方法依賴的package包/類
@SuppressLint({"NewApi"})
public static Bitmap takeScreenShot(Activity pActivity) {
    View view = pActivity.getWindow().getDecorView();
    view.setDrawingCacheEnabled(true);
    view.buildDrawingCache();
    Bitmap bitmap = view.getDrawingCache();
    Rect frame = new Rect();
    view.getWindowVisibleDisplayFrame(frame);
    int stautsHeight = frame.top;
    Point size = new Point();
    Display display = pActivity.getWindowManager().getDefaultDisplay();
    if (VERSION.SDK_INT < 13) {
        size.set(display.getWidth(), display.getHeight());
    } else {
        pActivity.getWindowManager().getDefaultDisplay().getSize(size);
    }
    return Bitmap.createBitmap(bitmap, 0, stautsHeight, size.x, size.y - stautsHeight);
}
 
開發者ID:JackChan1999,項目名稱:boohee_v5.6,代碼行數:19,代碼來源:BitmapUtil.java

示例4: captureWithoutStatusBar

import android.view.View; //導入方法依賴的package包/類
/**
 * 獲取當前屏幕截圖,不包含狀態欄
 *
 * @param activity activity
 * @return Bitmap
 */
public static Bitmap captureWithoutStatusBar(Activity activity)
{
    View view = activity.getWindow().getDecorView();
    view.setDrawingCacheEnabled(true);
    view.buildDrawingCache();
    Bitmap bmp = view.getDrawingCache();
    int statusBarHeight = BarTool.getStatusBarHeight(activity);
    DisplayMetrics dm = new DisplayMetrics();
    activity.getWindowManager().getDefaultDisplay().getMetrics(dm);
    Bitmap ret = Bitmap.createBitmap(bmp, 0, statusBarHeight, dm.widthPixels,
            dm.heightPixels - statusBarHeight);
    view.destroyDrawingCache();
    return ret;
}
 
開發者ID:Ayvytr,項目名稱:EasyAndroid,代碼行數:21,代碼來源:ScreenTool.java

示例5: snapShotWithStatusBar

import android.view.View; //導入方法依賴的package包/類
/**
 * 獲取當前屏幕截圖,包含狀態欄
 *
 * @param activity
 * @return
 */
public static Bitmap snapShotWithStatusBar(Activity activity) {
    View view = activity.getWindow().getDecorView();
    view.setDrawingCacheEnabled(true);
    view.buildDrawingCache();
    Bitmap bmp = view.getDrawingCache();
    int width = getScreenWidth(activity);
    int height = getScreenHeight(activity);
    Bitmap bp = null;
    bp = Bitmap.createBitmap(bmp, 0, 0, width, height);
    view.destroyDrawingCache();
    return bp;
}
 
開發者ID:zhudongya123,項目名稱:WechatChatroomHelper,代碼行數:19,代碼來源:ScreenUtils.java

示例6: getBitmapOFActivity

import android.view.View; //導入方法依賴的package包/類
public static Bitmap getBitmapOFActivity(Context context) {
	if (context == null) {
		return null;
	}
	if (!(context instanceof Activity)) {
		return null;
	}
	Activity activity = (Activity) context;
	View rootview = activity.getWindow().getDecorView().getRootView();
	rootview.setDrawingCacheEnabled(true);
	Bitmap bitmap = rootview.getDrawingCache();
	return bitmap;
}
 
開發者ID:MobClub,項目名稱:BBSSDK-for-Android,代碼行數:14,代碼來源:ImageUtils.java

示例7: createFloatView

import android.view.View; //導入方法依賴的package包/類
/**
 * @param coverView 被覆蓋的view,用於生產浮層View
 * @return 需要跟隨手勢浮動的 View
 */
protected View createFloatView(View coverView) {
    ImageView floatView = new ImageView(coverView.getContext());
    coverView.destroyDrawingCache();
    coverView.setDrawingCacheEnabled(true);
    Bitmap bitmap = coverView.getDrawingCache();
    if (bitmap != null && !bitmap.isRecycled()) {
        floatView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
        floatView.setImageBitmap(bitmap);
    }
    return floatView;
}
 
開發者ID:free46000,項目名稱:MultiItem,代碼行數:16,代碼來源:DragFloatViewHelper.java

示例8: toBitmap

import android.view.View; //導入方法依賴的package包/類
/**
 * 把view轉化為bitmap(截圖)
 * 參見:http://www.cnblogs.com/lee0oo0/p/3355468.html
 */
public static Bitmap toBitmap(View view) {
    int width = view.getWidth();
    int height = view.getHeight();
    if (view instanceof ListView) {
        height = 0;
        // 獲取listView實際高度
        ListView listView = (ListView) view;
        for (int i = 0; i < listView.getChildCount(); i++) {
            height += listView.getChildAt(i).getHeight();
        }
    } else if (view instanceof ScrollView) {
        height = 0;
        // 獲取scrollView實際高度
        ScrollView scrollView = (ScrollView) view;
        for (int i = 0; i < scrollView.getChildCount(); i++) {
            height += scrollView.getChildAt(i).getHeight();
        }
    }
    view.setDrawingCacheEnabled(true);
    view.clearFocus();
    view.setPressed(false);
    boolean willNotCache = view.willNotCacheDrawing();
    view.setWillNotCacheDrawing(false);
    // Reset the drawing cache background color to fully transparent for the duration of this operation
    int color = view.getDrawingCacheBackgroundColor();
    view.setDrawingCacheBackgroundColor(Color.WHITE);//截圖去黑色背景(透明像素)
    if (color != Color.WHITE) {
        view.destroyDrawingCache();
    }
    view.buildDrawingCache();
    Bitmap cacheBitmap = view.getDrawingCache();
    if (cacheBitmap == null) {
        return null;
    }
    Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    canvas.drawBitmap(cacheBitmap, 0, 0, null);
    canvas.save(Canvas.ALL_SAVE_FLAG);
    canvas.restore();
    if (!bitmap.isRecycled()) {
       // LogUtils.verbose("recycle bitmap: " + bitmap.toString());
        bitmap.recycle();
    }
    // Restore the view
    view.destroyDrawingCache();
    view.setWillNotCacheDrawing(willNotCache);
    view.setDrawingCacheBackgroundColor(color);
    return bitmap;
}
 
開發者ID:ruiqiao2017,項目名稱:Renrentou,代碼行數:54,代碼來源:ConvertUtils.java

示例9: drawChild

import android.view.View; //導入方法依賴的package包/類
protected boolean drawChild(Canvas canvas, View child, long drawingTime) {
    boolean result;
    LayoutParams lp = (LayoutParams) child.getLayoutParams();
    int save = canvas.save(2);
    if (!(!this.mCanSlide || lp.slideable || this.mSlideableView == null)) {
        canvas.getClipBounds(this.mTmpRect);
        if (isLayoutRtlSupport()) {
            this.mTmpRect.left = Math.max(this.mTmpRect.left, this.mSlideableView.getRight());
        } else {
            this.mTmpRect.right = Math.min(this.mTmpRect.right, this.mSlideableView.getLeft());
        }
        canvas.clipRect(this.mTmpRect);
    }
    if (VERSION.SDK_INT >= 11) {
        result = super.drawChild(canvas, child, drawingTime);
    } else if (!lp.dimWhenOffset || this.mSlideOffset <= 0.0f) {
        if (child.isDrawingCacheEnabled()) {
            child.setDrawingCacheEnabled(false);
        }
        result = super.drawChild(canvas, child, drawingTime);
    } else {
        if (!child.isDrawingCacheEnabled()) {
            child.setDrawingCacheEnabled(true);
        }
        Bitmap cache = child.getDrawingCache();
        if (cache != null) {
            canvas.drawBitmap(cache, (float) child.getLeft(), (float) child.getTop(), lp.dimPaint);
            result = false;
        } else {
            Log.e(TAG, "drawChild: child view " + child + " returned null drawing cache");
            result = super.drawChild(canvas, child, drawingTime);
        }
    }
    canvas.restoreToCount(save);
    return result;
}
 
開發者ID:JackChan1999,項目名稱:letv,代碼行數:37,代碼來源:SlidingPaneLayout.java

示例10: captureWithStatusBar

import android.view.View; //導入方法依賴的package包/類
/**
 * 獲取當前屏幕截圖,包含狀態欄
 *
 * @param activity activity
 * @return Bitmap
 */
public static Bitmap captureWithStatusBar(Activity activity) {
    View view = activity.getWindow().getDecorView();
    view.setDrawingCacheEnabled(true);
    view.buildDrawingCache();
    Bitmap bmp = view.getDrawingCache();
    DisplayMetrics dm = new DisplayMetrics();
    activity.getWindowManager().getDefaultDisplay().getMetrics(dm);
    Bitmap ret = Bitmap.createBitmap(bmp, 0, 0, dm.widthPixels, dm.heightPixels);
    view.destroyDrawingCache();
    return ret;
}
 
開發者ID:Jay-Ping,項目名稱:newIPlay,代碼行數:18,代碼來源:ScreenUtils.java

示例11: captureWithoutStatusBar

import android.view.View; //導入方法依賴的package包/類
/**
 * 獲取當前屏幕截圖,不包含狀態欄
 * <p>需要用到上麵獲取狀態欄高度的方法
 */
public static Bitmap captureWithoutStatusBar(Activity activity) {
    View view = activity.getWindow().getDecorView();
    view.setDrawingCacheEnabled(true);
    view.buildDrawingCache();
    Bitmap bmp = view.getDrawingCache();
    int statusBarHeight = getStatusBarHeight(activity);
    int width = getScreenWidth(activity);
    int height = getScreenHeight(activity);
    Bitmap bp = Bitmap.createBitmap(bmp, 0, statusBarHeight, width, height - statusBarHeight);
    view.destroyDrawingCache();
    return bp;
}
 
開發者ID:zhuangzaiku,項目名稱:AndroidCollection,代碼行數:17,代碼來源:ScreenUtils.java

示例12: snapShotWithStatusBar

import android.view.View; //導入方法依賴的package包/類
/**
 * 獲取當前屏幕截圖,包含狀態欄
 *
 * @param activity
 * @return
 */
public static Bitmap snapShotWithStatusBar(Activity activity) {
    View view = activity.getWindow().getDecorView();
    view.setDrawingCacheEnabled(true);
    view.buildDrawingCache();
    Bitmap bmp = view.getDrawingCache();
    int width = getScreenWidth(activity);
    int height = getScreenHeight(activity);
    Bitmap bp = null;
    bp = Bitmap.createBitmap(bmp, 0, 0, width, height);
    view.destroyDrawingCache();
    return bp;

}
 
開發者ID:InnoFang,項目名稱:Android-Code-Demos,代碼行數:20,代碼來源:ScreenUtil.java

示例13: of

import android.view.View; //導入方法依賴的package包/類
public static Bitmap of(View view, BlurFactor factor) {
	view.setDrawingCacheEnabled(true);
	view.destroyDrawingCache();
	view.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_LOW);
	Bitmap cache = view.getDrawingCache();
	Bitmap bitmap = of(view.getContext(), cache, factor);
	cache.recycle();
	return bitmap;
}
 
開發者ID:MobClub,項目名稱:BBSSDK-for-Android,代碼行數:10,代碼來源:Blur.java

示例14: snapShotWithStatusBar

import android.view.View; //導入方法依賴的package包/類
/**
 * 獲取當前屏幕截圖,包含狀態欄
 * 
 * @param activity
 * @return
 */
public static Bitmap snapShotWithStatusBar(Activity activity)
{
	View view = activity.getWindow().getDecorView();
	view.setDrawingCacheEnabled(true);
	view.buildDrawingCache();
	Bitmap bmp = view.getDrawingCache();
	int width = getScreenWidth(activity);
	int height = getScreenHeight(activity);
	Bitmap bp = null;
	bp = Bitmap.createBitmap(bmp, 0, 0, width, height);
	view.destroyDrawingCache();
	return bp;

}
 
開發者ID:ChenTianSaber,項目名稱:DailyZhiHu,代碼行數:21,代碼來源:ScreenUtils.java

示例15: snapShotWithStatusBar

import android.view.View; //導入方法依賴的package包/類
/**
 * 獲取當前屏幕截圖,包含狀態欄(這個方法沒測試通過)
 * 
 * @param activity
 * @return Bitmap
 */
public static Bitmap snapShotWithStatusBar(Activity activity) {
	View view = activity.getWindow().getDecorView();
	view.setDrawingCacheEnabled(true);
	view.buildDrawingCache();
	Bitmap bmp = view.getDrawingCache();
	int width = getScreenWidth(activity);
	int height = getScreenHeight(activity);
	Bitmap bp = null;
	bp = Bitmap.createBitmap(bmp, 0, 0, width, height);
	view.destroyDrawingCache();
	return bp;
}
 
開發者ID:wp521,項目名稱:MyFire,代碼行數:19,代碼來源:DisplayUtil.java


注:本文中的android.view.View.getDrawingCache方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。