当前位置:  编程技术>移动开发
本页文章导读:
    ▪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 作为其边界

 

 

 

[代码 步骤]

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

使之向图片中央靠拢 且按下一下 移动固定的距离

 

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色来做,配合它本来圆形形状,代表圆形彩虹,寓意幸福!


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3