当前位置:  编程技术>移动开发
本页文章导读:
    ▪源码批改中出现的BadTokenException & Dialog的修改和继承 & 2.2源码中分辨率hdpi设置        源码修改中出现的BadTokenException & Dialog的修改和继承 & 2.2源码中分辨率hdpi设置       一般来说修改Dialog界面的颜色、背景之类的元素主要涉及的是资源文件修改,不存在源码修改。.........
    ▪ 简略的页面登陆和页面跳转        简单的页面登陆和页面跳转 首先做出一个登陆的基本页面在.h文件中写出所用到的接口和方法@interface _1_11LoginViewController : UIViewController { IBOutlet UITextField *namefield; IBOutlet UITextField *passwordfield;.........
    ▪ 保存Bit地图到SD卡       保存Bitmap到SD卡 /** * 保存图片到SD卡(如果有SD卡的话) * @param mId */ private void saveMerchandiseImgToSD(int mId,String imageName) { FileOutputStream fos = null; Bitmap b = PublicMethod.getMerchandiseImage(mId); try { fos = .........

[1]源码批改中出现的BadTokenException & Dialog的修改和继承 & 2.2源码中分辨率hdpi设置
    来源: 互联网  发布时间: 2014-02-18
源码修改中出现的BadTokenException & Dialog的修改和继承 & 2.2源码中分辨率hdpi设置

      一般来说修改Dialog界面的颜色、背景之类的元素主要涉及的是资源文件修改,不存在源码修改。这里需要提及若是增加或者替换了图片,这里使用make -j2是识别不出来的,为了让其进行最小的编译可以有选择删除下面路径的文件

 

out\target\common\obj\APP\framework-res_intermediates

 

      以上没有涉及Dialog布局方面的修改,若是修改布局最好重载Dialog并定义自己的Theme,在相应的以下几个文件进行修改:

 

attrs.xml  styles.xml themes.xml  
public.xml \\为了让外部类识别该主题

     这里需要注意的是style用于单个布局xml的单个元素,而theme可以将其作为一个单位用在应用中的所有Activity中。重载了Dialog类后在调用该类时需要注意其调用类的类型:

     当调用类继承于WindowManagerPolicy时在Dialog类中的onCreate需要加入以下代码:

 

Window window = getWindow();
window.requestFeature(Window.FEATURE_NO_TITLE);
window.setType(WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG);
window.setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
              WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);

     如果调用类是Activity类,则不可以加入该类,否则这两种情况下都会抛出BadTokenException错误(已经通过程序验证,那里如果有错请各位指正O(∩_∩)O~)

 

 

 

    最后一点是在直接编译源码时候

out\target\product\generic\system\framework\framework-res.apk

    中没有hdpi文件夹,虽然在

 

out\target\common\obj\APPS\framework-res_intermediates\public_resources.xml

    hdpi文件夹的资源都已经被编译出来了,可是未能在system.img中有hdpi的资源,从而导致即便是设置480*800的分辨率其模拟器显示的结构依旧是mdpi的资源,因此需要做以下修改

 转载请注明(http://ishelf.iteye.com/blog/809040 )

 

在文件夹 build\target\product\generic.mk加入

CUSTOM_LOCALES:= hdpi mdpi

    
[2] 简略的页面登陆和页面跳转
    来源: 互联网  发布时间: 2014-02-18
简单的页面登陆和页面跳转
首先做出一个登陆的基本页面

在.h文件中写出所用到的接口和方法

@interface _1_11LoginViewController : UIViewController {
	IBOutlet UITextField *namefield;
	IBOutlet UITextField *passwordfield;
}
@property (nonatomic,retain) UITextField *namefield;
@property (nonatomic,retain) UITextField *passwordfield;
@property (nonatomic,retain) UIButton *allowButton;
-(IBAction)login;
-(IBAction)namefieldEditing:(id)sender;
-(IBAction)changeTextFile;
-(IBAction)doneLogin;
-(IBAction)allow;
@end


首先关注一下textfield中按钮的控制,


如果想在输入name完成是自动跳转到password的输入则进行以下设置:
选中上面的textfield框,在interface bulider中找到return key属性设置,将其改为next,那么原输入框右下角的Done会变为Next。

这是他的实现方法
-(IBAction)changeTextFile
{
	[passwordfield becomeFirstResponder]; 

}

而在下面的textfield设置是记将secure选项选中,即当输入密码时会用*代替


下面就是要进行页面跳转的工作了,在file菜单下选择new file选项,再选择UIviewController,顺便选中下面的生成xib文件的选项,点击next,取名successLogin,生成文件后将.xib拖入resources文件夹中,再实现以下代码
#import "successLogin.h"

-(IBAction)doneLogin{
		successLogin *mysuccessLogin = [[successLogin alloc] initWithNibName:@"successLogin" bundle:nil];		
		[self.view.window addSubview:mysuccessLogin.view];
		[mysuccessLogin release];
	}
}

这样就可以实现跳转了,但是我们一般对输入内容都有一定的限制,比如内容要大于4位,若小于四位则弹出对话框进行提示


实现下面代码:
-(IBAction)login{
	if (namefield.text.length<4||passwordfield.text.length<4) {
		UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Wrong" 
							message:@"They are not long enough" 
							delegate:self 
							cancelButtonTitle:@"I konw" 
							otherButtonTitles:nil];
		[alert show];
		[alert release];
	}else {
		successLogin *mysuccessLogin = [[successLogin alloc] initWithNibName:@"successLogin" bundle:nil];
		[self.view.window addSubview:mysuccessLogin.view];
		[mysuccessLogin release];
	}
}


这样一个简单的页面就完成了。

    
[3] 保存Bit地图到SD卡
    来源: 互联网  发布时间: 2014-02-18
保存Bitmap到SD卡

/**
 * 保存图片到SD卡(如果有SD卡的话)
 * @param mId
 */
private void saveMerchandiseImgToSD(int mId,String imageName)
{
	FileOutputStream fos = null;
	Bitmap b = PublicMethod.getMerchandiseImage(mId);
	try {
		fos = new FileOutputStream("/sdcard/Discount/" + imageName + ".jpg");
		if (fos != null) {
			b.compress(Bitmap.CompressFormat.JPEG, 90, fos);
			fos.close();
		}
	} catch (Exception e) {
		e.printStackTrace();
	}
}
 

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
oracle iis7站长之家
▪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