안 드 로 이 드 이미지 중첩 효과 - 두 가지 방법
효과 그림:
첫 번 째 종류:
두 번 째:
첫 번 째 는 canvas 를 통 해 그 려 진 효과 입 니 다.
public void first(View v) {
// Immutable bitmap passed to Canvas constructor
Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(),
R.drawable.apple).copy(Bitmap.Config.ARGB_8888, true);
Bitmap bitmap2 = ((BitmapDrawable) getResources().getDrawable(
R.drawable.go)).getBitmap();
Bitmap newBitmap = null;
newBitmap = Bitmap.createBitmap(bitmap1);
Canvas canvas = new Canvas(newBitmap);
Paint paint = new Paint();
int w = bitmap1.getWidth();
int h = bitmap1.getHeight();
int w_2 = bitmap2.getWidth();
int h_2 = bitmap2.getHeight();
paint.setColor(Color.GRAY);
paint.setAlpha(125);
canvas.drawRect(0, 0, bitmap1.getWidth(), bitmap1.getHeight(), paint);
paint = new Paint();
canvas.drawBitmap(bitmap2, Math.abs(w - w_2) / 2,
Math.abs(h - h_2) / 2, paint);
canvas.save(Canvas.ALL_SAVE_FLAG);
//
canvas.restore();
image.setImageBitmap(newBitmap);
}
Canvas canvas = new Canvas(newBitmap); new Bitmap 으로 Canvas 를 만 들 었 을 때 이 그림 에서 작업 이 이 루어 졌 습 니 다.
이 예 는 플레이어 가 재생 을 시작 하 는 효과 로 중간 위 치 를 계산 하고 투명 한 회색 정사각형 을 덮어 중간 에 자신 이 재생 하 는 단 추 를 그 리 는 것 이 라 고 할 수 있다.
두 번 째 는 시스템 을 사용 하 는 LayerDrawable 류 입 니 다. 이 종 류 는 주로 여러 그림 의 결합 을 제어 하 는 데 사 용 됩 니 다.
public void second(View v) {
Bitmap bitmap1 = ((BitmapDrawable) getResources().getDrawable(
R.drawable.apple)).getBitmap();
Bitmap bitmap2 = ((BitmapDrawable) getResources().getDrawable(
R.drawable.go)).getBitmap();
Drawable[] array = new Drawable[2];
array[0] = new BitmapDrawable(bitmap1);
array[1] = new BitmapDrawable(bitmap2);
LayerDrawable la = new LayerDrawable(array);
// , left、top、right bottom
la.setLayerInset(0, 0, 0, 0, 0);
la.setLayerInset(1, 20, 20, 20, 20);
image.setImageDrawable(la);
}
관련 배열 array, 각 층 의 위 치 를 제어 합 니 다.
메모: Immutable bitmap passed to Canvas constructor 오류 방지
copy 방법 을 사용 하지 않 으 면 자원 파일 을 직접 참조 하여 수정 할 수 있 으 며, 안 드 로 이 드 는 코드 에서 res 파일 의 그림 을 수정 할 수 없 기 때 문 입 니 다.
저도 왜 한 시간 동안 코드 를 테스트 하고 이 글 을 쓰 는 지 모 르 겠 습 니 다. 나중에 자 료 를 보기 위해 서 일 수도 있 습 니 다. 제 마음 속 의 그 효 과 를 검증 하기 위해 서 일 수도 있 습 니 다. 마음 이 갑자기 평범 해 졌 기 때 문 일 수도 있 습 니 다. 제 가 지금 four season in one day 라 는 마음 을 듣 고 있 는 것 과 같 습 니 다.
프로젝트 코드:http://files.cnblogs.com/not-code/picture_overlay.zip
원본 주소:http://www.cnblogs.com/not-code/archive/2011/08/18/2145126.html
본 고 는 오리지널 입 니 다. 만약 전재 가 필요 하 다 면 작가 와 출처 를 밝 혀 주 십시오. 감사합니다!
다음으로 전송:https://www.cnblogs.com/not-code/archive/2011/08/18/2145126.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.