[Android] 물에 반사된 듯한 이미지 효과 만들기.
Android2010. 4. 2. 00:38
이미지 효과로 이미지 크기의 절반을 반대 되는 이미지를 만들고,
그 반대된 이미지에 대해서는 반사 된 듯한 효과를 주는 소스 입니다.
결과 화면은 이런 식으로 나옵니다.
그 반대된 이미지에 대해서는 반사 된 듯한 효과를 주는 소스 입니다.
package com.android.reflection2; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.LinearGradient; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PorterDuffXfermode; import android.graphics.Bitmap.Config; import android.graphics.PorterDuff.Mode; import android.graphics.Shader.TileMode; import android.os.Bundle; import android.widget.ImageView; public class Reflection extends Activity { /** Called when the activity is first created. */ ImageView view1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); view1 = (ImageView) findViewById(R.id.ImageView01); Bitmap bitmapOriginal = BitmapFactory.decodeResource(getResources(), R.drawable.android); int nWidth = bitmapOriginal.getWidth(); int nHeight = bitmapOriginal.getHeight(); Matrix matrix = new Matrix(); matrix.preScale(1, -1); Bitmap bitmapReflection = Bitmap.createBitmap(bitmapOriginal, 0, nHeight / 2, nWidth, nHeight / 2, matrix, false); Bitmap bitmapOrigianlAndReflection = Bitmap.createBitmap(nWidth, (nHeight + nHeight / 2), Config.ARGB_8888); Canvas canvas = new Canvas(bitmapOrigianlAndReflection); canvas.drawBitmap(bitmapOriginal, 0, 0, null); Paint deafaultPaint = new Paint(); canvas.drawRect(0, nHeight, nWidth, nHeight + 5, deafaultPaint); canvas.drawBitmap(bitmapReflection, 0, nHeight + 5, null); Paint paint = new Paint(); LinearGradient shader = new LinearGradient(0, bitmapOriginal .getHeight(), 0, bitmapOrigianlAndReflection.getHeight() + 5, 0x70ffffff, 0x00ffffff, TileMode.CLAMP); paint.setShader(shader); paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN)); canvas.drawRect(0, nHeight, nWidth, bitmapOrigianlAndReflection .getHeight() + 5, paint); view1.setImageBitmap(bitmapOrigianlAndReflection); } }
결과 화면은 이런 식으로 나옵니다.
'Android' 카테고리의 다른 글
[Android] 안드로이드 개발 시 주의사항 - 백그라운드 실행시 주의할 점 (4) | 2010.04.07 |
---|---|
[Android] 모토로이 2.1 업데이트. (2) | 2010.04.02 |
[Android] 상하/좌우 반전 이미지 만들기. (1) | 2010.03.07 |
[Android] 안드로이드 반투명 화면 만들기. (0) | 2010.03.07 |
[Android] ImageButton에서 효과 주기. (13) | 2010.02.12 |