欢迎来到天天文库
浏览记录
ID:32165945
大小:609.45 KB
页数:4页
时间:2019-02-01
《黑马程序员安卓教程多媒体案例-撕衣服游戏》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、多媒体案例-撕衣服游戏1.4.1实现原理使用帧布局叠加2个ImageView,每个ImageView负责显示一张图片,一张图片有衣服,一张图片没有衣服,没有衣服的图片放置在下面,有衣服的图片放置在上面。给上面的ImageView设置触摸的事件,当手指触摸到图片上时,将手指触摸到的点周边的图片的像素点设置为透明的,这样下面的图片就一点一点显示出来了,从而有一种“撕衣服”的感觉。在编写该案例的时候应该注意的事项如下:1.触摸事件onTouch的返回值必须设置为true,否则触摸的事件将不被处理2.使用BitmapFactory的decodeResouc
2、es方法得到的图片是没有透明度的,即图片格式为RGB_565,所以若想能够修改透明度,需要使用Canvas对象对图片进行重绘,重新绘制的图片格式采用ARGB。3.加载图片时需要对其进行一下压缩,防止图片与控件大小不匹配,导致触摸时点对不上,达不到触摸哪里就设置哪里的像素点透明的效果。1.4.2布局实现【文件1-5】activity_main.xml1.3、android.com/tools"3.android:layout_width="match_parent"4.android:layout_height="match_parent"5.>6.11.4、t_gravity="center"13.android:id="@+id/iv_top"14.android:layout_width="wrap_content"15.android:layout_height="wrap_content"/>16.17.其实不用帧布局,用相对布局也是可以的,只要能满足两个ImageView叠加在一起的效果就行。1.4.3代码实现【文件1-6】MainActivity.java201.packagecom.example.takeoff;2.3.importandroid.os.Bu5、ndle;4.importandroid.app.Activity;5.importandroid.graphics.Bitmap;6.importandroid.graphics.Bitmap.Config;7.importandroid.graphics.BitmapFactory;8.importandroid.graphics.Canvas;9.importandroid.graphics.Color;10.importandroid.view.MotionEvent;11.importandroid.view.View;12.import6、android.view.View.OnTouchListener;13.importandroid.widget.ImageView;14./**15.*撕衣服16.*17.*@authorwzy2016-1-2718.*19.*/20.publicclassMainActivityextendsActivityimplementsOnTouchListener{21.22.23.privateImageViewiv_top;24.privateImageViewiv_bottom;25.privateBitmapbitmap;26.27.@Ov7、erride28.protectedvoidonCreate(BundlesavedInstanceState){29.super.onCreate(savedInstanceState);30.setContentView(R.layout.activity_main);31.//初始化ImageView对象32.iv_bottom=(ImageView)findViewById(R.id.iv_bottom);33.iv_top=(ImageView)findViewById(R.id.iv_top);34.//加载2张图片,图片是实现放在dr8、awable资源文件中的35.BitmaptopBitmap=BitmapFactory.decodeResource(g
3、android.com/tools"3.android:layout_width="match_parent"4.android:layout_height="match_parent"5.>6.11.4、t_gravity="center"13.android:id="@+id/iv_top"14.android:layout_width="wrap_content"15.android:layout_height="wrap_content"/>16.17.其实不用帧布局,用相对布局也是可以的,只要能满足两个ImageView叠加在一起的效果就行。1.4.3代码实现【文件1-6】MainActivity.java201.packagecom.example.takeoff;2.3.importandroid.os.Bu5、ndle;4.importandroid.app.Activity;5.importandroid.graphics.Bitmap;6.importandroid.graphics.Bitmap.Config;7.importandroid.graphics.BitmapFactory;8.importandroid.graphics.Canvas;9.importandroid.graphics.Color;10.importandroid.view.MotionEvent;11.importandroid.view.View;12.import6、android.view.View.OnTouchListener;13.importandroid.widget.ImageView;14./**15.*撕衣服16.*17.*@authorwzy2016-1-2718.*19.*/20.publicclassMainActivityextendsActivityimplementsOnTouchListener{21.22.23.privateImageViewiv_top;24.privateImageViewiv_bottom;25.privateBitmapbitmap;26.27.@Ov7、erride28.protectedvoidonCreate(BundlesavedInstanceState){29.super.onCreate(savedInstanceState);30.setContentView(R.layout.activity_main);31.//初始化ImageView对象32.iv_bottom=(ImageView)findViewById(R.id.iv_bottom);33.iv_top=(ImageView)findViewById(R.id.iv_top);34.//加载2张图片,图片是实现放在dr8、awable资源文件中的35.BitmaptopBitmap=BitmapFactory.decodeResource(g
4、t_gravity="center"13.android:id="@+id/iv_top"14.android:layout_width="wrap_content"15.android:layout_height="wrap_content"/>16.17.其实不用帧布局,用相对布局也是可以的,只要能满足两个ImageView叠加在一起的效果就行。1.4.3代码实现【文件1-6】MainActivity.java201.packagecom.example.takeoff;2.3.importandroid.os.Bu
5、ndle;4.importandroid.app.Activity;5.importandroid.graphics.Bitmap;6.importandroid.graphics.Bitmap.Config;7.importandroid.graphics.BitmapFactory;8.importandroid.graphics.Canvas;9.importandroid.graphics.Color;10.importandroid.view.MotionEvent;11.importandroid.view.View;12.import
6、android.view.View.OnTouchListener;13.importandroid.widget.ImageView;14./**15.*撕衣服16.*17.*@authorwzy2016-1-2718.*19.*/20.publicclassMainActivityextendsActivityimplementsOnTouchListener{21.22.23.privateImageViewiv_top;24.privateImageViewiv_bottom;25.privateBitmapbitmap;26.27.@Ov
7、erride28.protectedvoidonCreate(BundlesavedInstanceState){29.super.onCreate(savedInstanceState);30.setContentView(R.layout.activity_main);31.//初始化ImageView对象32.iv_bottom=(ImageView)findViewById(R.id.iv_bottom);33.iv_top=(ImageView)findViewById(R.id.iv_top);34.//加载2张图片,图片是实现放在dr
8、awable资源文件中的35.BitmaptopBitmap=BitmapFactory.decodeResource(g
此文档下载收益归作者所有