当前位置: 编程技术>移动开发
本页文章导读:
▪行讯通腾挪、电信、联通通用版,可以查询实时公交 行讯通移动、电信、联通通用版,可以查询实时公交
行讯通移动、电信、联通通用版。
作用: 可以查询实时公交,相当于手机上的BRT,又超越BRT,可以显示所有车,所有线路的行驶位.........
▪ NSString种的实现类 NSString类的实现类
写一个NSString类的实现+ (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSStringEncoding)encoding; + (id) stringWithCString: (c*****t char*)nullTerminatedCStringencoding: (NSStringEncoding)encoding {N.........
▪ note 39-关于起动界面,屏幕尺寸,自适应函数,与屏幕密度 note 39-关于启动界面,屏幕尺寸,自适应函数,与屏幕密度
android 不会自动检测屏幕密度, 所有屏幕密度默认都当作 1 (160dpi )处理 . 因此问题就来了, 我的模拟器密度是1, 因此所有像素设置都.........
[1]行讯通腾挪、电信、联通通用版,可以查询实时公交
来源: 互联网 发布时间: 2014-02-18
行讯通移动、电信、联通通用版,可以查询实时公交
行讯通移动、电信、联通通用版。
作用: 可以查询实时公交,相当于手机上的BRT,又超越BRT,可以显示所有车,所有线路的行驶位置。
欢迎下载,顶一下哈
[2] NSString种的实现类
来源: 互联网 发布时间: 2014-02-18
NSString类的实现类
写一个NSString类的实现
+ (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSStringEncoding)encoding; + (id) stringWithCString: (c*****t char*)nullTerminatedCString
encoding: (NSStringEncoding)encoding {
NSString *obj;
obj = [self allocWithZone: NSDefaultMallocZone()];
obj = [obj initWithCString: nullTerminatedCString encoding: encoding]; return AUTORELEASE(obj);
}
问题1,用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。
答案: int main (int argc, const char * argv[])
{
@autoreleasepool {
// 用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回
char Temp[20]="zhang";
// gets(Temp);
char res[20];
int k=0;
int nLen = (int)strlen(Temp);
for(int i=nLen-1;i>=0;i--)
{ k++;
res[k]=Temp[i];
printf("==%c==",Temp[i]);
}
NSLog(@"sss===%s",res);
}
return 0;
}
self._iCarouse.viewpointOffset=CGSizeMake(0,-250);
self._iCarouse.contentOffset=CGSizeMake(0,-250);
旋转木马~
写一个NSString类的实现
+ (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSStringEncoding)encoding; + (id) stringWithCString: (c*****t char*)nullTerminatedCString
encoding: (NSStringEncoding)encoding {
NSString *obj;
obj = [self allocWithZone: NSDefaultMallocZone()];
obj = [obj initWithCString: nullTerminatedCString encoding: encoding]; return AUTORELEASE(obj);
}
写一个NSString类的实现
+ (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSStringEncoding)encoding; + (id) stringWithCString: (c*****t char*)nullTerminatedCString
encoding: (NSStringEncoding)encoding {
NSString *obj;
obj = [self allocWithZone: NSDefaultMallocZone()];
obj = [obj initWithCString: nullTerminatedCString encoding: encoding]; return AUTORELEASE(obj);
}
问题1,用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。
答案: int main (int argc, const char * argv[])
{
@autoreleasepool {
// 用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回
char Temp[20]="zhang";
// gets(Temp);
char res[20];
int k=0;
int nLen = (int)strlen(Temp);
for(int i=nLen-1;i>=0;i--)
{ k++;
res[k]=Temp[i];
printf("==%c==",Temp[i]);
}
NSLog(@"sss===%s",res);
}
return 0;
}
self._iCarouse.viewpointOffset=CGSizeMake(0,-250);
self._iCarouse.contentOffset=CGSizeMake(0,-250);
旋转木马~
写一个NSString类的实现
+ (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSStringEncoding)encoding; + (id) stringWithCString: (c*****t char*)nullTerminatedCString
encoding: (NSStringEncoding)encoding {
NSString *obj;
obj = [self allocWithZone: NSDefaultMallocZone()];
obj = [obj initWithCString: nullTerminatedCString encoding: encoding]; return AUTORELEASE(obj);
}
[3] note 39-关于起动界面,屏幕尺寸,自适应函数,与屏幕密度
来源: 互联网 发布时间: 2014-02-18
note 39-关于启动界面,屏幕尺寸,自适应函数,与屏幕密度
android 不会自动检测屏幕密度, 所有屏幕密度默认都当作 1 (160dpi )处理 . 因此问题就来了, 我的模拟器密度是1, 因此所有像素设置都没有问题. 但在我的屏幕密度 1.5 (240 dpi )的手机上, 所有单位都自动乘了1.5 !
幸好网上有高人:
http://www.cnblogs.com/wangtianxj/archive/2011/03/18/1988358.html
DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); int width = metric.widthPixels; // 屏幕宽度(像素) int height = metric.heightPixels; // 屏幕高度(像素) float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5) int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240)
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:resizeable="true" android:anyDensity="true" />
只要加入这一句, android 就会检测你屏幕的密度,自动作出正确的换算. 否则的话, 当我设置了一个宽度为屏幕一半的图片组件, 系统会自动把它乘以 1.5 , 变得无厘头的大 !
于是我的自适应算法就成立了,根据不同屏幕组件自动适应:
LinearLayout ll=(LinearLayout)this.findViewById(R.id.button_bar); ViewGroup.LayoutParams paramButtonBar=ll.getLayoutParams(); paramButtonBar.width=(int)(display.getWidth()*0.93); paramButtonBar.height=(int)(display.getWidth()*0.93*0.14); ll.setLayoutParams(paramButtonBar); Button bCal=(Button)this.findViewById(R.id.cal_btn); ViewGroup.LayoutParams paramsCal=bCal.getLayoutParams(); paramsCal.width=(int)(paramButtonBar.width/3); paramsCal.height=paramButtonBar.height; bCal.setLayoutParams(paramsCal);
另一个话题,启动界面,也来自网上,不解释了:
http://blog.sina.com.cn/s/blog_4d142b550100rs3f.html
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.sunshine.splash" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Splash" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="Main"> </activity> </application> <uses-sdk android:minSdkVersion="3" /> </manifest> 然后是JAVA代码: package net.hlovey.splash; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; public class Splash extends Activity { private final int SPLASH_DISPLAY_LENGHT = 3000; //延迟三秒 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.splash); new Handler().postDelayed(new Runnable(){ @Override public void run() { Intent mainIntent = new Intent(Splash.this,Main.class); Splash.this.startActivity(mainIntent); Splash.this.finish(); } }, SPLASH_DISPLAY_LENGHT); } }
public class MyActivity extends Activity implements Runnable { private boolean isOver=false; private LinearLayout screenup; Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub switch(msg.what){ case 0: //隐藏启动的View screenup.setVisibility(View.GONE); //取消全屏 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); break; case 1: Toast.makeText(getApplicationContext(), "加载中", Toast.LENGTH_SHORT).show(); break; } super.handleMessage(msg); } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); screenup=(LinearLayout)findViewById(R.id.screenup); new Thread(this).start(); } private void show(){ Message msg=new Message(); if(isOver){ msg.what=0; handler.sendMessage(msg); }else{ msg.what=1; handler.sendMessage(msg); } } @Override public void run() { // TODO Auto-generated method stub //加载数据。。。。。。。。此处没有数据加载,延时2秒 try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } isOver=true; show(); } }
最新技术文章: