天天看點

android圖檔翻轉鏡像源代碼:效果圖如下:

源代碼:

http://download.csdn.net/detail/zhuimengandyue/5914779

效果圖如下:

android圖檔翻轉鏡像源代碼:效果圖如下:

重點代碼: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);

  }

 }

}