안 드 로 이 드 캡 처 두 가지 방법 적용
2298 단어 Android
DrawingCache 사용 하기
DrawingCache 를 사용 하면 캡 처 할 View 에 대한 요구 가 있 습 니 다.View 자체 가 인터페이스 에 표시 되 어 있 습 니 다.View 가 인터페이스 에 추가 되 지 않 았 거나 표시 되 지 않 았 다 면 buildDrawingCache 는 실 패 했 습 니 다.이런 방식 은 응용 인터페이스 나 특정한 부분 에 대한 캡 처 에 비교적 적합 하 다.절차 가 간단 하 다.
view.setDrawingCacheEnabled(true);
view.buildDrawingCache(); // DrawingCache
Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache()); // DrawingCache , DrawingCache
view.setDrawingCacheEnabled(false); // DrawingCahce
View.draw 방법:
캡 처 할 View 가 인터페이스 에 추가 되 지 않 았 다 면 자바 코드 를 통 해 만 들 었 거나 inflate 를 통 해 만 들 었 을 수도 있 습 니 다.이 때 DrawingCache 방법 을 사용 하면 그림 을 가 져 올 수 없습니다.View 가 용기 에 추가 되 기 전 까지 실제 크기 를 얻 지 못 했 기 때문에(LayoutWidth 가 MatchParent 라면 Parent 가 없습니다...)먼저 View 의 크기 를 지정 해 야 합 니 다.
private void layoutView(View v, int width, int height) {
// validate view.width and view.height
v.layout(0, 0, width, height);
int measuredWidth = View.MeasureSpec.makeMeasureSpec(width, View.MeasureSpec.EXACTLY);
int measuredHeight = View.MeasureSpec.makeMeasureSpec(height, View.MeasureSpec.EXACTLY);
// validate view.measurewidth and view.measureheight
v.measure(measuredWidth, measuredHeight);
v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());i
}
그 다음 에 View 와 그 내부 의 서브 View 는 모두 실제 크기 를 가지 게 되 었 다.즉,구 조 를 완 성 했 고 인터페이스 에 추 가 된 것 과 비슷 하 다.다음 에 비트 맵 을 만 들 고 그 위 에 그 릴 수 있 습 니 다:
int viewWidth = webView.getMeasuredWidth();
int viewHeight = webView.getMeasuredHeight();
if (viewWidth > 0 && viewHeight > 0) {
b = Bitmap.createBitmap(viewWidth, viewHeight, Config.ARGB_8888);
Canvas cvs = new Canvas(b);
webView.draw(cvs);
}
WebView 의 캡 처 는 조금 특수 합 니 다.웹 페이지 의 내용 은 레이아웃 이 완 료 된 후에 바로 렌 더 링 할 수 없습니다.WebView 크기 의 변 화 는 데스크 톱 브 라 우 저 창 크기 의 변화 에 해당 하기 때문에 Webkit 는 창 크기 에 따라 모든 내용 을 다시 렌 더 링 해 야 합 니 다.이것 은 최대 300 ms 의 시간 이 필요 합 니 다(성능 이 다른 장치 에 대해 서 는...웹 페이지 의 복잡 도 는 웹 키 트 버 전과 다 를 수 있 습 니 다).배경 을 만 드 는 WebView 를 캡 처 해 야 한다 면 만 들 때 레이아웃 작업 을 해 야 합 니 다.로 딩 이 완료 되면 대부분 렌 더 링 이 완료 되 었 습 니 다(비동기 적 인 js 처리 가 없 는 한).
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.