当前位置: 编程技术>移动开发
本页文章导读:
▪在真机下中文显示乱码 在真机上中文显示乱码
在模拟器上显示是一切正确的,但在真机下中文就是??显示的,乱码全部出现在rms里存储的汉字,怎么修改最简单有效啊,各位大牛……我这样添加进去的:rmsope.........
▪ Bit地图和Matrix旋转图片 Bitmap和Matrix旋转图片
public class RotateImageViewActivity extends Activity { private Button mButton1; private Button mButton2; private TextView mTextView; private ImageView mImageView; private int scaleTimes; private int scaleAngle; protec.........
▪ activity属性,加载方式等 activity属性,加载模式等
在activity的配置文件中提供了四种activity的加载模式:android:launchMode="standard"/"singleTop"/"singleTask"/"singleInstanse"我们在设计应用程序的时候首先要把activity之间的跳转.........
[1]在真机下中文显示乱码
来源: 互联网 发布时间: 2014-02-18
在真机上中文显示乱码
在模拟器上显示是一切正确的,但在真机下中文就是??显示的,乱码全部出现在rms里存储的汉字,怎么修改最简单有效啊,各位大牛……
我这样添加进去的:
rmsope.add("中国", cg.getString(cg.getSelectedIndex()));
一个是直接输入的汉字一个是在ChoiceGroup里读取的,凡是汉字就是乱码,怎么在简单的基础上修改啊?谢谢
在模拟器上显示是一切正确的,但在真机下中文就是??显示的,乱码全部出现在rms里存储的汉字,怎么修改最简单有效啊,各位大牛……
我这样添加进去的:
rmsope.add("中国", cg.getString(cg.getSelectedIndex()));
一个是直接输入的汉字一个是在ChoiceGroup里读取的,凡是汉字就是乱码,怎么在简单的基础上修改啊?谢谢
[2] Bit地图和Matrix旋转图片
来源: 互联网 发布时间: 2014-02-18
Bitmap和Matrix旋转图片
public class RotateImageViewActivity extends Activity {
private Button mButton1;
private Button mButton2;
private TextView mTextView;
private ImageView mImageView;
private int scaleTimes;
private int scaleAngle;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.rotate_image);
mButton1 = (Button) findViewById(R.id.rotate_image_Button1);
mButton2 = (Button) findViewById(R.id.rotate_image_Button2);
mImageView = (ImageView) findViewById(R.id.rotate_image_ImageView);
mTextView = (TextView) findViewById(R.id.rotate_image_TextView1);
scaleTimes = 2;
scaleAngle = 1;
Log.v("Lowry", "==================="+mButton1.toString());
final Bitmap mySourceBmp = BitmapFactory.decodeResource(getResources(), R.drawable.hippo);
final int widthOrig = mySourceBmp.getWidth();
final int heightOrig = mySourceBmp.getHeight();
mButton1.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
scaleAngle--;
if(scaleAngle<-5){
scaleAngle=-5;
}//根据旋转次数记录旋转的角度
int newWidth = widthOrig*scaleTimes;
int newHeight = heightOrig*scaleTimes;
float scaleWidth = ((float)newWidth)/widthOrig;
float scaleHeight = ((float)newHeight)/heightOrig;
Log.i("Lowry", "++++widthOrig="+widthOrig+";heightOrig="
+heightOrig+";newWidth="+newWidth+";newHeight="+newHeight+";scaleWidth="+scaleWidth);
Matrix mt = new Matrix();
mt.postScale(scaleWidth, scaleHeight);
//mt.setScale(2.0f,2.0f);设置图片的比例
mt.setRotate(20*scaleAngle);
//mt.postRotate(20*scaleAngle)与其同意,设置旋转的角度
Bitmap newSizeBitmap = Bitmap.createBitmap(mySourceBmp,0,0,widthOrig,heightOrig,mt,true);
//根据原来的Bitmap,mt,生成新的Bitmap对象
BitmapDrawable bd = new BitmapDrawable(newSizeBitmap);
mImageView.setImageDrawable(bd);
mTextView.setText(Integer.toString(20*scaleAngle));
}
});
mButton2.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
scaleAngle++;
if(scaleAngle>5){
scaleAngle = 5;
}
int newWidth = widthOrig*scaleTimes;
int newHeight = heightOrig*scaleTimes;
float scaleWidth = ((float)newWidth)/widthOrig;
float scaleHeight = ((float)newHeight)/heightOrig;
Matrix mt = new Matrix();
mt.postScale(scaleHeight, scaleWidth);
mt.setRotate(20*scaleAngle);
Bitmap newb = Bitmap.createBitmap(mySourceBmp,0,0, widthOrig, heightOrig, mt, true);
BitmapDrawable bd = new BitmapDrawable(newb);
mImageView.setImageDrawable(bd);
mTextView.setText(Integer.toString(20*scaleAngle));
}
});
}
}
public class RotateImageViewActivity extends Activity {
private Button mButton1;
private Button mButton2;
private TextView mTextView;
private ImageView mImageView;
private int scaleTimes;
private int scaleAngle;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.rotate_image);
mButton1 = (Button) findViewById(R.id.rotate_image_Button1);
mButton2 = (Button) findViewById(R.id.rotate_image_Button2);
mImageView = (ImageView) findViewById(R.id.rotate_image_ImageView);
mTextView = (TextView) findViewById(R.id.rotate_image_TextView1);
scaleTimes = 2;
scaleAngle = 1;
Log.v("Lowry", "==================="+mButton1.toString());
final Bitmap mySourceBmp = BitmapFactory.decodeResource(getResources(), R.drawable.hippo);
final int widthOrig = mySourceBmp.getWidth();
final int heightOrig = mySourceBmp.getHeight();
mButton1.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
scaleAngle--;
if(scaleAngle<-5){
scaleAngle=-5;
}//根据旋转次数记录旋转的角度
int newWidth = widthOrig*scaleTimes;
int newHeight = heightOrig*scaleTimes;
float scaleWidth = ((float)newWidth)/widthOrig;
float scaleHeight = ((float)newHeight)/heightOrig;
Log.i("Lowry", "++++widthOrig="+widthOrig+";heightOrig="
+heightOrig+";newWidth="+newWidth+";newHeight="+newHeight+";scaleWidth="+scaleWidth);
Matrix mt = new Matrix();
mt.postScale(scaleWidth, scaleHeight);
//mt.setScale(2.0f,2.0f);设置图片的比例
mt.setRotate(20*scaleAngle);
//mt.postRotate(20*scaleAngle)与其同意,设置旋转的角度
Bitmap newSizeBitmap = Bitmap.createBitmap(mySourceBmp,0,0,widthOrig,heightOrig,mt,true);
//根据原来的Bitmap,mt,生成新的Bitmap对象
BitmapDrawable bd = new BitmapDrawable(newSizeBitmap);
mImageView.setImageDrawable(bd);
mTextView.setText(Integer.toString(20*scaleAngle));
}
});
mButton2.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
scaleAngle++;
if(scaleAngle>5){
scaleAngle = 5;
}
int newWidth = widthOrig*scaleTimes;
int newHeight = heightOrig*scaleTimes;
float scaleWidth = ((float)newWidth)/widthOrig;
float scaleHeight = ((float)newHeight)/heightOrig;
Matrix mt = new Matrix();
mt.postScale(scaleHeight, scaleWidth);
mt.setRotate(20*scaleAngle);
Bitmap newb = Bitmap.createBitmap(mySourceBmp,0,0, widthOrig, heightOrig, mt, true);
BitmapDrawable bd = new BitmapDrawable(newb);
mImageView.setImageDrawable(bd);
mTextView.setText(Integer.toString(20*scaleAngle));
}
});
}
}
[3] activity属性,加载方式等
来源: 互联网 发布时间: 2014-02-18
activity属性,加载模式等
在activity的配置文件中提供了四种activity的加载模式:
android:launchMode="standard"/"singleTop"/"singleTask"/"singleInstanse"
我们在设计应用程序的时候首先要把activity之间的跳转关系确定好,以及它什么时间该pause,stop,destroy都要进行严格的控制,而以前不知道activity的加载模式的时候老是打开了很多activity,然后在点击返回的时候同一activity出现很多次才回到主页面,现在总结一下activity四种加载模式
首先如果我们不写默认的是standard,它表示如果需要就创建,这也就是当初不知道写这个属性的时候打开了很多activity的缘故
singleTop只针对栈中最上面的activity设置单例,意思就是说如果A在栈的最上面,如果你把A的加载模式设成singleTop,则你再启动一个A的时候不是重新启一个,点击返回就可以看出效果,而如果设置为standard,就会再重新开启一个A,在你点击返回的时候发现还有一个A,但是如果A不在栈的最上面,则你要是再打开一个A的话,还是会重新创建一个A
下面就说到了singleTask,它表示在这个运行栈中此activity只能有一个,上面说到如果把A设置成singleTop,如果A不在栈最上层,就重新创建A,但是如果你把A设成singleTask,则会清除A上面所有的activity,把A调到栈顶,因为在此栈中A只能有一个,栈又是后进先出的机制,你不可能把A直接从里面给拉出来,所以就必须先要把A上面的activity清除掉
最后说一下singleInstance,如果把activity的加载模式设成了singleInstance,则表示为此activity单开一个任务栈,单开的这个任务栈中只有此activity
android:android:noHistory="true"表示不把当前此activity压入栈,只是显示当前activity,如果它跳转到其他activity,再点击返回的时候将看不到设置成nohistory的的activity
android:theme="@+android:style/Theme.Dialog"表示对此activity的风格进行设置,当前的activity就是被设置成了dialog的样式
在activity的配置文件中提供了四种activity的加载模式:
android:launchMode="standard"/"singleTop"/"singleTask"/"singleInstanse"
我们在设计应用程序的时候首先要把activity之间的跳转关系确定好,以及它什么时间该pause,stop,destroy都要进行严格的控制,而以前不知道activity的加载模式的时候老是打开了很多activity,然后在点击返回的时候同一activity出现很多次才回到主页面,现在总结一下activity四种加载模式
首先如果我们不写默认的是standard,它表示如果需要就创建,这也就是当初不知道写这个属性的时候打开了很多activity的缘故
singleTop只针对栈中最上面的activity设置单例,意思就是说如果A在栈的最上面,如果你把A的加载模式设成singleTop,则你再启动一个A的时候不是重新启一个,点击返回就可以看出效果,而如果设置为standard,就会再重新开启一个A,在你点击返回的时候发现还有一个A,但是如果A不在栈的最上面,则你要是再打开一个A的话,还是会重新创建一个A
下面就说到了singleTask,它表示在这个运行栈中此activity只能有一个,上面说到如果把A设置成singleTop,如果A不在栈最上层,就重新创建A,但是如果你把A设成singleTask,则会清除A上面所有的activity,把A调到栈顶,因为在此栈中A只能有一个,栈又是后进先出的机制,你不可能把A直接从里面给拉出来,所以就必须先要把A上面的activity清除掉
最后说一下singleInstance,如果把activity的加载模式设成了singleInstance,则表示为此activity单开一个任务栈,单开的这个任务栈中只有此activity
android:android:noHistory="true"表示不把当前此activity压入栈,只是显示当前activity,如果它跳转到其他activity,再点击返回的时候将看不到设置成nohistory的的activity
android:theme="@+android:style/Theme.Dialog"表示对此activity的风格进行设置,当前的activity就是被设置成了dialog的样式
最新技术文章: