当前位置: 编程技术>移动开发
本页文章导读:
▪Bit地图 相关2:Bit地图.createBit地图() 使用 Bitmap 相关2:Bitmap.createBitmap() 使用
写道
Bitmap 创建
写道
我们不能总是依赖于BitmapFactory 下面告诉大家怎么从Bitmaqp中截取某一部分创建新的Bitmap 系统会有一个默认png图片:icon.png 但是这个.........
▪ 2010-1-25火雨系列其次版:指环王 2010-1-25火雨系列第二版:指环王
ROM简明信息:
核心:21888
字体:雅黑
系统:Windows Mobiles 6.5
发布时间:2010-1-25
版本名称:指环王
首发地址(观看需要注册账号):http://www.ppc-rom.com/viewthread.php?tid=18346.........
▪ 2010-二-6火雨系列第三版:幸福圆虹 2010-2-6火雨系列第三版:幸福圆虹
ROM简明信息:
核心:21890
字体:雅黑
系统:Windows Mobiles 6.5
发布时间:2010-2-6
版本名称:幸福圆虹
首发地址(观看需要注册账号):http://www.ppc-rom.com/viewthread.php?tid=18596
.........
[1]Bit地图 相关2:Bit地图.createBit地图() 使用
来源: 互联网 发布时间: 2014-02-18
Bitmap 相关2:Bitmap.createBitmap() 使用
写道
Bitmap 创建
写道
我们不能总是依赖于BitmapFactory 下面告诉大家怎么从Bitmaqp中截取某一部分创建新的Bitmap
系统会有一个默认png图片:icon.png 但是这个图片中最外层会有白色的 比较讨厌 现在以此为例 说说怎么截取 因为其外层为白色 显示不出来 所以我用了 *.9.png 作为其边界
系统会有一个默认png图片:icon.png 但是这个图片中最外层会有白色的 比较讨厌 现在以此为例 说说怎么截取 因为其外层为白色 显示不出来 所以我用了 *.9.png 作为其边界
[代码 步骤]
1. 创建Bitmaop 且指向icon.png
Bitmap ori = BitmapFactory.decodeResource(this.getResources(), R.drawable.icon);
2. 创建布局文件 有2个ImageView 一个供原图显示 一个供切割后显示
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/layout"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/image1"
android:layout_gravity="center_horizontal"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/image2"
android:layout_gravity="center"
/>
</LinearLayout>
3. 初始化变量
lLauout = (LinearLayout)findViewById(R.id.layout);
iv1 = (ImageView)findViewById(R.id.image1);
iv2 = (ImageView)findViewById(R.id.image2);
4. 得到原图的宽度与高度 供后面使用
width = ori.getWidth(); height = ori.getHeight();
5. 定义变量 标志切割位置 并初始化之
int startX,startY,lengthX,lengthY;
startX = 0; startY = 0; lengthX = width; lengthY = height;
6. 如何选取图片位置
写道
函数原型: Bitmap.createBitmap(Bitmap source, int x, int y, int width, int height)
方法1:不断调整参数:x,y,width,heighy
方法2:利用导航键 上下左右分别控制上述4变量
导航键 左: x
导航键 右: width
导航键 上: y
导航键 下: height
使之向图片中央靠拢 且按下一下 移动固定的距离
方法1:不断调整参数:x,y,width,heighy
方法2:利用导航键 上下左右分别控制上述4变量
导航键 左: x
导航键 右: width
导航键 上: y
导航键 下: height
使之向图片中央靠拢 且按下一下 移动固定的距离
public boolean onKeyDown(int keyCode, KeyEvent msg){
switch(keyCode){
case KeyEvent.KEYCODE_DPAD_LEFT:
updateLeft();
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
updateRight();
break;
case KeyEvent.KEYCODE_DPAD_UP:
updateUp();
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
updateDown();
break;
case KeyEvent.KEYCODE_DPAD_CENTER:
showResult();
break;
}
return false;
}
7. 还需要判断移动是否合理
以下几种情况不合理: 1. 当图形左边 比 图形最大宽度 还大 2. 当图形上边 比 图形最大高度 还大 3. 图形宽度 或 高度 小于 0
public boolean isUpdateOK(){
if((startX > lengthX)||(startY > lengthY)||(lengthX > 0)||(lengthY > 0)){
return false;
}
else {
return true;
}
}
8. 具体移动方法:
public void updateLeft(){
startX += step;
lengthX = width-startX;
lengthY = height-startY;
if(isUpdateOK()){
target1.recycle();
target1 = Bitmap.createBitmap(ori,startX, startY, lengthX, lengthY);
iv2.setImageBitmap(target1);
setContentView(lLauout);
}
}
public void updateUp(){
startY += step;
lengthX = width-startX;
lengthY = height-startY;
if(isUpdateOK()){
target1.recycle();
target1 = Bitmap.createBitmap(ori,startX, startY, lengthX, lengthY);
iv2.setImageBitmap(target1);
setContentView(lLauout);
}
}
public void updateRight(){
lengthX -= step;
if(isUpdateOK()){
target1.recycle();
target1 = Bitmap.createBitmap(ori,startX, startY, lengthX, lengthY);
iv2.setImageBitmap(target1);
setContentView(lLauout);
}
}
public void updateDown(){
lengthY -= step;
if(isUpdateOK()){
target1.recycle();
target1 = Bitmap.createBitmap(ori,startX, startY, lengthX, lengthY);
iv2.setImageBitmap(target1);
setContentView(lLauout);
}
}
public void showResult(){
AlertDialog.Builder ab = new AlertDialog.Builder(this);
AlertDialog aDialog;
ab.setMessage("startX:"+startX+"\n"+"startY:"+startY+"\n"+"lengthX:"+lengthX+"\n"+"lengthY:"+lengthY).setTitle("show result").show();;
aDialog = ab.create();
aDialog.show();
}
9. emulator 运行情况:
[2] 2010-1-25火雨系列其次版:指环王
来源: 互联网 发布时间: 2014-02-18
2010-1-25火雨系列第二版:指环王
ROM简明信息:
核心:21888
字体:雅黑
系统:Windows Mobiles 6.5
发布时间:2010-1-25
版本名称:指环王
首发地址(观看需要注册账号):http://www.ppc-rom.com/viewthread.php?tid=18346&
我的说明:由于第一版本字体为宋体并且得到论坛网友的强烈要求换字体为雅黑,第二版本主要是合理化第一版本的图标并且更换字体,从这版开始,我慢慢在论坛有了一定的市场.
[3] 2010-二-6火雨系列第三版:幸福圆虹
来源: 互联网 发布时间: 2014-02-18
2010-2-6火雨系列第三版:幸福圆虹
ROM简明信息:
核心:21890
字体:雅黑
系统:Windows Mobiles 6.5
发布时间:2010-2-6
版本名称:幸福圆虹
首发地址(观看需要注册账号):http://www.ppc-rom.com/viewthread.php?tid=18596
我的说明:本版本用来贺年,灵感来源于圆形彩虹(圆形彩虹是由真实的圆弧结构构成,但人们在地面上通常很难直接观看到完整的圆形彩虹。借助高空摄影能够拍摄到壮观美丽的圆形彩虹,当然飞机必须飞行至一定的高度才能拍摄到。)从上图可以看出今日的那个光圈,我用了彩虹7色来做,配合它本来圆形形状,代表圆形彩虹,寓意幸福!
最新技术文章: