版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、动漫壁纸 篇一:Android - 图片处理与动画 第四章 图片处理 应用离不开图片。图片不但可以给应用带来美观的界面,而且可以为用户提供丰富的功能和体验,在当下特别难想象一个完全由文本组成的软件;而在开发过程中,对图片的加载,缓存,显示等处理又会直截了当阻碍整个工程的应能。因而,在Android中对图片处理的重要性不言而喻。本章中读者应该着重掌握如下内容: (1)使用Matrix对图片进展变换 (2)Bitmap的操作 (3)图片异步加载框架的使用 图片处理 假设我们平时留意观察了那些成熟的Android应用,就会觉察它们大都使用一种统一的风格和款式贯穿整个工程,例如统一的背风光或背景图片,
2、统一的标题栏,统一的按钮款式,统一的字体等等。而这种“统一”就来自于Style(款式)和Theme(主题)的使用 1. Style Style从本质上讲确实是一些属性的集合,例如:layout_width,layout_height,textSize,textColor等等,Style将这些属性定义在xml文件中,供其他规划文件中的控件援用。其角色类似于页面中的css,将款式单独抽离出来,方便修正和重用。 Style的定义 Style定义在styles.xml中,创立在res/values/目录下,代码如下: lt;?xml version=1.0 encoding=utf-8? lt;res
3、ources lt;style name=itemTitle lt;item name=android:textSize25splt;/item lt;item name=android:textStyleboldlt;/item lt;/style lt;/resources 上面代码中定义了一个名为itemTitle的款式,它包含textSize,textStyle两个属性。 Style的使用 Style可以在规划文件中通过名字来援用,代码如下: lt;TextView style=style/itemTitle android:text=测试款式 / Theme可以说和Style是完全一
4、样的,只不过Theme是针对Activity或整个工程的。 Theme的定义 Theme定义在theme.xml中,创立在res/values/目录下,代码如下: lt;?xml version=1.0 encoding=utf-8?lt;resources lt;color name=custom_background_color#FFFFFFFFlt;/color lt;style name=RiverTheme parent=android:Theme.Light lt;item name=android:windowBackgroundcolor/custom_background_c
5、olorlt;/item lt;/style lt;/resources 上面代码中定义了一个名为RiverTheme的主题,它包含一个windowBackgroud属性。这里继承了系统的theme.light,一般theme是继承的,如此可以对默认的风格不必重复定义。本例定义了一个背风光。这里背风光要单独声明,不能在item元素中直截了当写颜色值,会提示语法错误。 Theme的使用 Theme可以在Manifest文件中通过名字来援用,代码如下: lt;activity . android:theme=style/RiverTheme 4.1.2 Matrix实现图片的几何操作 在Andro
6、id中,假设想对图片进展缩放,旋转等操作,就需要使用Matrix类。Matrix的操作,总共分为translate(平移),rotate(旋转),scale(缩放)和skew(倾斜)四种。下面的代码展示了实现缩放和旋转两种操作的步骤: /按照图片资源创立相应的Bitmap对象e.im01); /获取图片的原始宽高 bmpWidth = myBmp.getWidth(); bmpHeight = myBmp.getHeight(); /实例化matrix Matrix matrix = new Matrix(); matrix.postScale(1.5F, 1.5F); /顺时针旋转45度 m
7、atrix.postRotate(45.0F); /按照Matrix的设定产生新的Bitmap对象 newBmp = Bitmap.createBitmap(myBmp, 0, 0, bmpWidth, bmpHeight, matrix, true); 在上面代码中,matrix的方法postScale和postRotate分别用来对图片的缩放和旋转进展设定。缩放和旋转都围绕着一个中心点来进展,在默认情况下,中心点为(0,0),该点位于图片的物理中心。 实例BitmapDemo演示了对图片的旋转和缩放,如图4-1所示,拖动界面上方的拖动条(SeekBar),可以顺时针旋转图片;点击下方按钮,
8、可以放大图片。 图4-1 图片的旋转和缩放: encoding=utf-8? lt;RelativeLayout xmlns:android=:/schemas.android/apk/res/android android:layout_width=fill_parent android:layout_height=fill_parent lt;!- 拖动条 - lt;SeekBar android:id=+id/seekBarId android:layout_width=fill_parent android:layout_height=wrap_content android:layo
9、ut_alignParentTop=true / lt;!- 图片 - lt;ImageView android:id=+id/imageview android:layout_width=wrap_content android:layout_height=wrap_content android:src=drawable/im01 android:layout_centerInParent=true / lt;!- 按钮 - lt;Button android:id=+id/big android:layout_width=wrap_content android:layout_heigh
10、t=wrap_content android:text=放大 android:layout_alignParentBottom=true android:layout_centerHorizontal=true / lt;/RelativeLayout BitmapDemoActivity.java代码如下:package com.spl; import android.app.Activity; import android.graphics.Bitmap; import andropFactory; import android.graphics.Matrix; import androi
11、d.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; import androiet.SeekBar; public class BitmapDemoActivity extends Activity ImageView myImageView; Bitmap myBmp, newBmp; int bmpWidth, bmpHeight; SeekBar seek
12、barRotate; Button big; float rotAngle, scaleRate; Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); myImageView = (ImageView) findViewById(R.id.imageview); /按照图片资源创立相应的Bitmap对象 myBmp = BitmapFactory.decodeResource(getResources
13、(), R.drawable.im01); /获取图片的原始宽高 bmpWidth = myBmp.getWidth(); bmpHeight = myBmp.getHeight(); scaleRate = 1.2F; /实例化matrix Matrix matrix = new Matrix(); matrix.postScale(1.5F, 1.5F); /顺时针旋转45度 matrix.postRotate(45.0F); /按照Matrix的设定产生新的Bitmap对象 newBmp = Bitmap.createBitmap(myBmp, 0, 0, bmpWidth, bmpHe
14、ight, matrix, true);seekbarRotate =(SeekBar) findViewById(R.id.seekBarId); seekbarRotate.setOnSeekBarChangeListener(onRotate); big = (Button) findViewById(R.id.big); big.setOnClickListener(bigClick); /按钮点击监听器 private OnClickListener bigClick = new OnClickListener() Override public void onClick(View
15、arg0) Matrix matrix = new Matrix();/设定Matrix属性;/ 让放大比例持续增大 ; / 拖动条监听器 private SeekBar.OnSeekBarChangeListener onRotate=new SeekBar.OnSeekBarChangeListener() public void onStopTrackingTouch(SeekBar seekBar) public void onStartTrackingTouch(SeekBar seekBar) public void onProgressChanged(SeekBar seekBa
16、r, int progress, boolean fromUser) /拖动过程中的事件处理 Matrix m = new Matrix(); m.postRotate(float)progress*3.6F);/产生一定角度的旋转 newBmp=Bitmap.createBitmap(myBmp, 0, 0, bmpWidth, bmpHeight, m, trp(newBmp); ; 4.1.3 Bitmap的使用aphics包中,它不提供对外的构造方法,只能通过BitmapFactory的静态方法来实例化。 BitmapFactory提供了多个方法来获取Bitmap实例,下面给大家逐一介
17、绍: 1)从文件获取 myBmp = BitmapFactory.decodeFile(pathName); myBmp = BitmapFactory.decodeFile(pathName, opts); pathName为图片的绝对途径,一般为SDCard上的途径。 2)从资源中获取 myBmp = BitmapFactory.decodeResource(res, id);篇二:我的图片240x320 102k jpg .浪漫的可爱卡通情侣图片240x. 290x400 154k gif 500x353 18k jpg .漂亮的韩国卡通情侣 - ps实. 715x450 166k jpg .-韩国漂亮卡通情侣大图模块 . 140x109 2k jpg 非主流卡通情侣图相关图片.1280x960 186k jpg 动漫情侣签素材 185x187 10k jpg 95x95 4k jpg 240x400 40k gif 爱情左右卡通情侣图片 -. 300x340 74k jpg 可爱的动漫情侣184x415 36k gif .片 甜蜜卡通情侣情人节闪. 155x400 38k jpg 非主流卡通情侣动态图片-. 176x220 38k gif 好看的卡通动漫情侣闪图_简. 240x320 92k gif 100x120 46k gif
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论