package com.blog.video;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ComposeShader;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.RadialGradient;
import android.graphics.Shader;
import android.graphics.Shader.TileMode;
import android.graphics.SweepGradient;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
public class VideoActivity extends Activity {
@Override
public void
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyView mView=new MyView(this);
setContentView(mView);
}
class MyView
extends View{
private Bitmap bm;
private Shader bitmapShader;
private Shader linearGradient;
private Shader radialGradient;
private Shader sweepGradient;
private Shader composeShader;
private int[] colors;
private Paint paint;
private boolean isFirst=true;
public MyView(Context
context) {
super(context);
bm=BitmapFactory.decodeResource(getResources(),
R.drawable.img6);
paint=new
Paint();
colors=new
int[]{Color.RED,Color.GREEN,Color.BLUE};
bitmapShader=new
BitmapShader(bm, TileMode.REPEAT, TileMode.MIRROR);
linearGradient=new
LinearGradient(0, 0, 100, 100, colors, null,
TileMode.REPEAT);
radialGradient=new
RadialGradient(100, 100, 80, colors, null, TileMode.REPEAT);
sweepGradient=new
SweepGradient(200, 200, colors, null);
composeShader=new
ComposeShader(linearGradient, radialGradient,
PorterDuff.Mode.DARKEN);
setFocusable(true);
}
@Override
protected void onDraw(Canvas
canvas) {
super.onDraw(canvas);
if(isFirst){
String
content="press up/down/left/right/middle to draw rectangle";
paint.setColor(Color.BLUE);
canvas.drawText(content,0,content.length()-1,20,20,paint);
}else{
canvas.drawRect(0,
0, getWidth(),this.getHeight(), paint);
}
}
@Override
public boolean onKeyDown(int
keyCode, KeyEvent event) {
isFirst=false;
if(keyCode==KeyEvent.KEYCODE_DPAD_UP){
paint.setShader(bitmapShader);
}
if(keyCode==KeyEvent.KEYCODE_DPAD_DOWN){
paint.setShader(linearGradient);
}
if(keyCode==KeyEvent.KEYCODE_DPAD_LEFT){
paint.setShader(radialGradient);
}
if(keyCode==KeyEvent.KEYCODE_DPAD_RIGHT){
paint.setShader(sweepGradient);
}
if(keyCode==KeyEvent.KEYCODE_DPAD_CENTER){
paint.setShader(composeShader);
}
postInvalidate();
return
super.onKeyDown(keyCode, event);
} }
}
结果截图: