在wp7中,string有很多中显示的方式,比如如何显示特殊字符,美元符号,电话号码等等,学习过C#的朋友一定知道如何使用了,其实是一样的,废话不多少,先看看要实现什么
1、创建一个项目StringTest1,在WP7的UI上设计如下的样子
是一个有Button和TextBlock组成的界面,当点击Button后,会显示不同的string类型
注意:将下面的TextBlock属性设置为wrap,即自动换行
2、先将代码贴出来,然后看演示效果
using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls; using System.Text; namespace StringTest1 { public partial class MainPage : PhoneApplicationPage { // Constructor public MainPage() { InitializeComponent(); } private void myButton_Click(object sender, RoutedEventArgs e) { //string myString = "Go to your d:\\driver"; //string myString = "My \"so called\" life"; //string myString = "What if I need \n a new line?"; //myTextBlock.Text = myString; //string myString = String.Format("Make:{0}(Model:{1})","BMW","754li"); //string myString = String.Format("{0:C}",123.45); //string myString = String.Format("{0:N}",1234567890); //string myString = String.Format("{0:D}",1234567890); //string myString = String.Format("{0:P}",.127); //string myString = String.Format("Phone number:{0:(###) ###-####}",0288596370); //myTextBlock.Text = myString; //string myString = ""; //StringBuilder myString = new StringBuilder(); //for (int i = 0; i < 100; i++) //{ //myString += "--" + i.ToString(); //myString = myString + "--" + i.ToString(); // myString.Append("--"); // myString.Append(i); //} // myTextBlock.Text = myString; //myTextBlock.Text = myString.ToString(); string myString = "It's better to be lucky than good."; //myString = myString.Substring(5, 12); //myString = myString.ToUpper(); //myString = myString.Replace(" ","--"); myString = String.Format("Length Before:{0} -- After:{1}",myString.Length, myString.Trim().Length); myTextBlock.Text = myString; } } }
3、演示效果1,
string myString = "Go to your d:\\driver"; myTextBlock.Text = myString;
演示效果2:
string myString = "My \"so called\" life"; myTextBlock.Text = myString;
演示效果3:
string myString = "What if I need \n a new line?"; myTextBlock.Text = myString;
演示效果4:
string myString = String.Format("Make:{0}(Model:{1})","BMW","754li"); myTextBlock.Text = myString;
演示效果5:
string myString = String.Format("{0:C}",123.45); myTextBlock.Text = myString;
演示效果6:
string myString = String.Format("{0:N}",1234567890); myTextBlock.Text = myString;
演示效果7:
string myString = String.Format("{0:D}",1234567890); myTextBlock.Text = myString;
演示效果8:
string myString = String.Format("{0:P}",.127); myTextBlock.Text = myString;
演示效果9:
string myString = String.Format("Phone number:{0:(###) ###-####}",0288596370); myTextBlock.Text = myString;
演示效果10:
string myString = ""; for (int i = 0; i < 100; i++) { myString += "--" + i.ToString(); } myTextBlock.Text = myString;
演示效果11:
string myString = ""; for (int i = 0; i < 100; i++) { myString = myString + "--" + i.ToString(); } myTextBlock.Text = myString;
演示效果12:
StringBuilder myString = new StringBuilder(); for (int i = 0; i < 100; i++) { myString.Append("--"); myString.Append(i); } myTextBlock.Text = myString.ToString();
演示效果13:
string myString = "It's better to be lucky than good."; myString = myString.Substring(5, 12);
演示效果14:
string myString = "It's better to be lucky than good."; myString = myString.ToUpper();
演示效果15:
string myString = "It's better to be lucky than good."; myString = myString.Replace(" ","--"); myTextBlock.Text = myString;
演示效果16:
myString = String.Format("Length Before:{0} -- After:{1}",myString.Length, myString.Trim().Length); myTextBlock.Text = myString;
1.系统属性获取及设置
android.os.SystemProperties文件
android.os.Build文件
可以取得系统版本等信息。
类似adb shell : getprop看到的值
2.设置中的设置值
在android中,许多的系统属性都在settings应用当中进行设置的,比如wifi、蓝牙状态,当前本机语言,屏幕亮度等等一些相关的系统属性值。这些数据主要是存储在数据库中,对应的URI 为:content://settings/system和content://settings/secure,这两个是主要的,目前也只是涉及到这两个数据库表的使用。
接下来,就了解下settings应用中是如何对系统属性进行设置的。
当需要获得当前wifi状态的值,调用已封装的方法如下:
Settings.Secure.getInt(getContentResolver() , Settings.Secure.WIFI_ON);
修改wifi状态只需要调用对应的setInt方法就可以实现。
当需要获得当前时间日期自动获取,调用如下:
Settings.System.getInt(getContentResolver() , "auto_time");
修改也是调用对应的setInt方法。
注意:这里修改settings的系统属性值需要有相关的权限。如修改wifi状态需要有android.permission.WRITE_SETTINGS权限,权限问题只要参考sdk下的描述就可以。
其实在settings应用中所获取或者修改属性都是调用了framework中android.provider.settings的 Settings类对应的方法,也就是说真正有跟数据库打交道的是在provider中,这里也体现了ContentProvider的用途。
就大体说下android.provider.settings.Settings这个类吧。Settings里面创建了包含System和 Secure在内的几个内部类,每个内部类都对应了一张数据库表,也就是继承自BaseColumns类,System和Secure类分别对应着 system和secure数据库表。
对于上面通过getInt获得的字段,其实是在初始获得数据库数值的时候,首先是有getString方法将数据库数据保留,然后在integer.parseInt将数据转换成int类型。这就是settings读取和保留数据的基本原理。
可以考虑把你的apk做系统签名
java -jar signapk.jar platform.x509.pem platform.pk8 xxx.apk yyy.apk
SlidingDrawer效果想必大家也见到过,它就是1.5模拟器上进入应用程序列表的效果。下面是截图
一、简介
SlidingDrawer隐藏屏外的内容,并允许用户通过handle以显示隐藏内容。它可以垂直或水平滑动,它有俩个View组成,其一是可以拖动的handle,其二是隐藏内容的View.它里面的控件必须设置布局,在布局文件中必须指定handle和content.
例如下面
<SlidingDrawer android:layout_width="fill_parent"
android:layout_height="fill_parent" android:handle="@+id/handle"
android:content="@+id/content" android:orientation="vertical"
android:id="@+id/slidingdrawer">
<ImageButton android:id="@id/handle" android:layout_width="50dip"
android:layout_height="44dip" android:src="/blog_article/@drawable/up/index.html" />
<LinearLayout android:id="@id/content"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:background="#ffffff">
<TextView android:text="这是一个滑动式抽屉的示例"
android:id="@+id/tv"
android:textSize="18px"
android:textColor="#000000"
android:gravity="center_vertical|center_horizontal"
android:layout_width="match_parent"
android:text
android:layout_height="match_parent"></TextView>
</LinearLayout>
</SlidingDrawer>
二、重要属性
android:allowSingleTap:指示是否可以通过handle打开或关闭
android:animateOnClick:指示是否当使用者按下手柄打开/关闭时是否该有一个动画。
android:content:隐藏的内容
android:handle:handle(手柄)
三、重要方法
animateClose():关闭时实现动画。
close():即时关闭
getContent():获取内容
isMoving():指示SlidingDrawer是否在移动。
isOpened():指示SlidingDrawer是否已全部打开
lock():屏蔽触摸事件。
setOnDrawerCloseListener(SlidingDrawer.OnDrawerCloseListener onDrawerCloseListener):SlidingDrawer关闭时调用
unlock():解除屏蔽触摸事件。
toggle():切换打开和关闭的抽屉SlidingDrawer。
四、完整实例
1.布局文件slidingdrawer.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical" android:background="@drawable/default_bg">
<SlidingDrawer android:layout_width="fill_parent"
android:layout_height="fill_parent" android:handle="@+id/handle"
android:content="@+id/content" android:orientation="vertical"
android:id="@+id/slidingdrawer">
<ImageButton android:id="@id/handle" android:layout_width="50dip"
android:layout_height="44dip" android:src="/blog_article/@drawable/up/index.html" />
<LinearLayout android:id="@id/content"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:background="#ffffff">
<TextView android:text="这是一个滑动式抽屉的示例"
android:id="@+id/tv"
android:textSize="18px"
android:textColor="#000000"
android:gravity="center_vertical|center_horizontal"
android:layout_width="match_parent"
android:text
android:layout_height="match_parent"></TextView>
</LinearLayout>
</SlidingDrawer>
</LinearLayout>
2.Java代码
package com.wjq;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageButton;
import android.widget.SlidingDrawer;
import android.widget.TextView;
public class SlidingDrawerDemo extends Activity {
private SlidingDrawer mDrawer;
private ImageButton imbg;
private Boolean flag=false;
private TextView tv;
/* (non-Javadoc)
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.sildingdrawer);
imbg=(ImageButton)findViewById(R.id.handle);
mDrawer=(SlidingDrawer)findViewById(R.id.slidingdrawer);
tv=(TextView)findViewById(R.id.tv);
mDrawer.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener()
{
@Override
public void onDrawerOpened() {
flag=true;
imbg.setImageResource(R.drawable.down);
}
});
mDrawer.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener(){
@Override
public void onDrawerClosed() {
flag=false;
imbg.setImageResource(R.drawable.up);
}
});
mDrawer.setOnDrawerScrollListener(new SlidingDrawer.OnDrawerScrollListener(){
@Override
public void onScrollEnded() {
tv.setText("结束拖动");
}
@Override
public void onScrollStarted() {
tv.setText("开始拖动");
}
});
}
}
<script type="text/javascript"></script>