//http://www.apache.org/licenses/LICENSE-2.0 private Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); private ColorMatrix mCM = new ColorMatrix(); private Bitmap mBitmap; private float mSaturation; private float mAngle; //.......... mBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.my_image); //.......... private static void setContrastScaleOnly(ColorMatrix cm, float contrast) { float scale = contrast + 1.f; float translate = (-.5f * scale + .5f) * 255.f; cm.set(new float[] { scale, 0, 0, 0, 0, 0, scale, 0, 0, 0, 0, 0, scale, 0, 0, 0, 0, 0, 1, 0 }); } private static void setContrast(ColorMatrix cm, float contrast) { float scale = contrast + 1.f; float translate = (-.5f * scale + .5f) * 255.f; cm.set(new float[] { scale, 0, 0, 0, translate, 0, scale, 0, 0, translate, 0, 0, scale, 0, translate, 0, 0, 0, 1, 0 }); } private static void setContrastTranslateOnly(ColorMatrix cm, float contrast) { float scale = contrast + 1.f; float translate = (-.5f * scale + .5f) * 255.f; cm.set(new float[] { 1, 0, 0, 0, translate, 0, 1, 0, 0, translate, 0, 0, 1, 0, translate, 0, 0, 0, 1, 0 }); } @Override protected void onDraw(Canvas canvas) { Paint paint = mPaint; float x = 20; float y = 20; canvas.drawColor(Color.WHITE); paint.setColorFilter(null); canvas.drawBitmap(mBitmap, x, y, paint); ColorMatrix cm = new ColorMatrix(); mAngle += 2; if (mAngle > 180) { mAngle = 0; } //convert our animated angle [-180...180] to a contrast value of [-1..1] float contrast = mAngle / 180.f; setContrast(cm, contrast); paint.setColorFilter(new ColorMatrixColorFilter(cm)); canvas.drawBitmap(mBitmap, x + mBitmap.getWidth() + 10, y, paint); setContrastScaleOnly(cm, contrast); paint.setColorFilter(new ColorMatrixColorFilter(cm)); canvas.drawBitmap(mBitmap, x, y + mBitmap.getHeight() + 10, paint); setContrastTranslateOnly(cm, contrast); paint.setColorFilter(new ColorMatrixColorFilter(cm)); canvas.drawBitmap(mBitmap, x, y + 2*(mBitmap.getHeight() + 10), paint); invalidate(); } }
česky
activity
admob
androidmanifest
array
bitmap
button
calculator
code
cycle
date
dialog
dictionary
download
draw
dynamically
eclipse
eclipse error
emulator
error
example
file
finance
for
game
imageview
java
kalkulačka
map
number
phrases
screen
setonclicklistener
slovník
smartphone
software
statement
string
text
textview
time
timer
treemap
value
xml