源代碼:
http://download.csdn.net/detail/zhuimengandyue/5914779
效果圖如下:
重點代碼:canvas.translate(0, image.getHeight());//垂直移動view的高度
canvas.scale(1f, -1f);//圖像垂直翻轉
import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.widget.ImageView;
public class Jingxiang extends ImageView{
private ImageView image;
public Jingxiang(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public Jingxiang(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public void setImage(ImageView view){
this.image=view;
}
public ImageView getReflectableLayout() {
return image;
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
if(image == null){
super.onDraw(canvas);
return;
}
// reflect & copy
canvas.translate(0, image.getHeight());//垂直移動view的高度,然後垂直翻轉
canvas.scale(1f, -1f);//圖像垂直翻轉
// render
image.draw(canvas);
super.onDraw(canvas);
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@android:color/background_light" >
<ImageView android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/member"/>
<com.example.test.Jingxiang
android:id="@+id/reflect"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_marginTop="1dip"/>
</LinearLayout>
import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
public class PictureActivity extends Activity{
Jingxiang jx;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.jx);
setTitle("圖像鏡像");
ImageView image=(ImageView) findViewById(R.id.image);
jx=(Jingxiang) findViewById(R.id.reflect);
if(image!=null&&jx!=null){
jx.setImage(image);
}
}
}