Notice
Recent Posts
Recent Comments
올해는 머신러닝이다.
[Android] 물에 반사된 듯한 이미지 효과 만들기. 본문
출처 : http://drcarter.tistory.com/97
이미지 효과로 이미지 크기의 절반을 반대 되는 이미지를 만들고,
그 반대된 이미지에 대해서는 반사 된 듯한 효과를 주는 소스 입니다.
결과 화면은 이런 식으로 나옵니다.
이미지 효과로 이미지 크기의 절반을 반대 되는 이미지를 만들고,
그 반대된 이미지에 대해서는 반사 된 듯한 효과를 주는 소스 입니다.
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 > Tip&Tech' 카테고리의 다른 글
안드로이드 AsyncTask 와 Thread 차이 (0) | 2011.08.20 |
---|---|
[펌][Java/Android] 원격지 이미지 다운로드 (Remote Image Downloader) (0) | 2011.08.11 |
[안드로이드]이미지 합성하는 방법 (0) | 2011.08.10 |
[안드로이드]모바일 웹에서 이미지 업로드 가능(2.2부터) (0) | 2011.08.08 |
[펌]android listview dynamic add footer (0) | 2011.08.02 |