android二维图形翻转效果
来源:互联网 发布:淘宝怎么设置虚拟发货 编辑:程序博客网 时间:2024/06/06 13:21
android中Matrix之一(图片二维转动)
android最酷的就是它的图片切换效果,而其核心是通过Matrix类来实现的,作了个简单的小例子,可以通过点击两个按钮实现图片的左右转动,奉献以下程序代码;
页面布局matrixlayout.xml代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:id="@+id/myTextView1" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:text="hello xiaohua">
</TextView>
<Button android:id="@+id/myButton1" android:text="left"
android:layout_width="wrap_content" android:layout_height="wrap_content">
</Button>
<Button android:id="@+id/myButton2" android:text="right"
android:layout_width="wrap_content" android:layout_height="wrap_content">
</Button>
<ImageView android:id="@+id/myImageView1"
android:layout_width="wrap_content" android:layout_height="wrap_content">
</ImageView>
</LinearLayout>
主程序代码MatrixTest.java
package test.shi;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.widget.*;
import android.util.Log;
import android.view.*;
public class MatrixTest extends Activity {
private Button myButton1;
private Button myButton2;
private TextView myTextView1;
private ImageView myImageView1;
int ScaleTimes=0;
int ScaleAngles=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.matrixlayout);
try{
//初始化几个控件
myButton1=(Button)findViewById(R.id.myButton1);
myButton2=(Button)findViewById(R.id.myButton2);
myTextView1=(TextView)findViewById(R.id.myTextView1);
myImageView1=(ImageView)findViewById(R.id.myImageView1);
ScaleTimes=1;
ScaleAngles=1;
//生成位图
final Bitmap mybitmap=BitmapFactory.decodeResource(getResources(), R.drawable.icon);
myImageView1.setImageBitmap(mybitmap);
//图片原始大小
final int widOrg=mybitmap.getWidth();
final int heightOrg=mybitmap.getHeight();
myButton1.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ScaleAngles--;
if(ScaleAngles<=-5)
ScaleAngles=-5;
int newWid=ScaleTimes*widOrg;
int newHeight=ScaleTimes*heightOrg;
float scaleWid=((float)newWid)/ScaleTimes;
float scaleHeight=((float)newHeight)/ScaleTimes;
//每次都转5度,设定的最大左偏转25度,右偏转25度
Matrix matrix=new Matrix();
matrix.postScale(scaleWid,scaleHeight);
matrix.setRotate(5*ScaleAngles);
//产生暂存的Bitmap,matrix参数是关键
Bitmap newbitmap=Bitmap.createBitmap(mybitmap, 0,0, widOrg,
heightOrg,matrix,true);
BitmapDrawable bitmapDrawable=new BitmapDrawable(newbitmap);
myImageView1.setImageDrawable(bitmapDrawable);
myTextView1.setText(Integer.toString(5*ScaleAngles));
}
});
myButton2.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ScaleAngles++;
if(ScaleAngles>=5)
ScaleAngles=5;
int newWid=ScaleTimes*widOrg;
int newHeight=ScaleTimes*heightOrg;
float scaleWid=((float)newWid)/ScaleTimes;
float scaleHeight=((float)newHeight)/ScaleTimes;
Matrix matrix=new Matrix();
matrix.postScale(scaleWid,scaleHeight);
//postRotate与setRotate在这里效果是一样的。
//matrix.postRotate(5*ScaleAngles);
matrix.setRotate(5*ScaleAngles);
Bitmap newbitmap=Bitmap.createBitmap(mybitmap, 0,0, widOrg,
heightOrg,matrix,true);
BitmapDrawable bitmapDrawable=new BitmapDrawable(newbitmap);
myImageView1.setImageDrawable(bitmapDrawable);
myTextView1.setText(Integer.toString(5*ScaleAngles));
}
});
}
catch(Exception ex)
{
Log.d("shi",ex.toString());
ex.printStackTrace();
}
}
}
- android二维图形翻转效果
- Android 立方体翻转效果
- Android图片翻转动画效果
- android activity切换翻转效果
- android 翻转效果动画源码
- Android 翻转动画 Rotate3dAnimation 效果
- Android 卡片翻转动画效果
- Android开发指南-二维图形
- Android开发指南-二维图形
- Android开发指南-二维图形
- 利用 css3 的图形3d翻转效果应用demo
- css3的图形3d翻转效果应用示例
- Android/OPhone动画分析之翻转效果
- Android\OPhone动画分析之翻转效果
- Android 图片三维翻转的效果
- Android 动画分析之翻转效果
- 简单实现Android图片翻转动画效果
- Android---显示卡片翻转的动画效果
- 说一说CS小本找工作的肤浅经验----ustc
- 并口模式
- android大分辨率问题
- GCC编译器基本命令
- U-boot 2011.03 smdk6410的移植
- android二维图形翻转效果
- vim常用命令大全
- 方法的重载
- 动态条件道指令运行测试
- java 设计模式 学习笔记(15) 组合模式
- 静态变量
- 贵州省黎平县骗子石卫林淘宝上调包我的HP液晶显示器
- 继承
- Ubuntu apt-get 命令工具汇集