先是主函数public class App extends Activity {
private AnimationDrawable anim;
private CustomDrawableView cusView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
bitmapScale mao = new bitmapScale();
setContentView(mao.getLayout());
}
}
然后是新创建的类...其实是抄的:
public class bitmapScale extends Activity{
public LinearLayout linLayout;
public void onCrete(Bundle icicle){
super.onCreate(icicle);
setTitle("图片变换");
linLayout = new LinearLayout(this);
//加载需要的图片
Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sample_4);
//获取宽和高
int width = originalBitmap.getWidth();
int height = originalBitmap.getHeight();
//想要的宽和高
int newWidth = 200;
int newHeight=200;
//算算要缩放多少比例
float scaleWidth = newWidth/width;
float scaleHeight=newHeight/height;
//创建操作图片用的Matrix对象,好像matrix是储存一系列的操作然后应用到图片上的
Matrix matrix = new Matrix();
//先储存缩放图片动作到matrix里
matrix.postScale(scaleWidth, scaleHeight);
//然后储存旋转
matrix.postRotate(45);
//创建新图片
Bitmap resizedBitmap = Bitmap.createBitmap(originalBitmap,
0,
0,
width,
height,
matrix,
true);
//把上面的转换过的图片变成Drawable对象,让它可以放到imageview里
BitmapDrawable bmd = new BitmapDrawable(resizedBitmap);
ImageView imageView = new ImageView(this);
imageView.setImageDrawable(bmd);
//将图片居中显示
//imageView.setScaleType(ScaleType.CENTER);
//将ImageView添加到layout里
linLayout.addView(imageView,
new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
setContentView(linLayout);
}
LinearLayout getLayout(){
return linLayout;
}
}运行后debug里显示:
[2011-06-07 23:37:11 - AndroidApp] Android Launch!
[2011-06-07 23:37:11 - AndroidApp] adb is running normally.
[2011-06-07 23:37:11 - AndroidApp] Performing com.enseignement.AndroidApp.App activity launch
[2011-06-07 23:37:11 - AndroidApp] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'Android22'
[2011-06-07 23:37:11 - AndroidApp] WARNING: Application does not specify an API level requirement!
[2011-06-07 23:37:11 - AndroidApp] Device API version is 8 (Android 2.2)
[2011-06-07 23:37:13 - AndroidApp] Application already deployed. No need to reinstall.
[2011-06-07 23:37:13 - AndroidApp] Starting activity com.enseignement.AndroidApp.App on device emulator-5554
[2011-06-07 23:37:15 - AndroidApp] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.enseignement.AndroidApp/.App }
[2011-06-07 23:37:15 - AndroidApp] ActivityManager: Warning: Activity not started, its current task has been brought to the front然后就运行失败了。。怎么回事呢
private AnimationDrawable anim;
private CustomDrawableView cusView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
bitmapScale mao = new bitmapScale();
setContentView(mao.getLayout());
}
}
然后是新创建的类...其实是抄的:
public class bitmapScale extends Activity{
public LinearLayout linLayout;
public void onCrete(Bundle icicle){
super.onCreate(icicle);
setTitle("图片变换");
linLayout = new LinearLayout(this);
//加载需要的图片
Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sample_4);
//获取宽和高
int width = originalBitmap.getWidth();
int height = originalBitmap.getHeight();
//想要的宽和高
int newWidth = 200;
int newHeight=200;
//算算要缩放多少比例
float scaleWidth = newWidth/width;
float scaleHeight=newHeight/height;
//创建操作图片用的Matrix对象,好像matrix是储存一系列的操作然后应用到图片上的
Matrix matrix = new Matrix();
//先储存缩放图片动作到matrix里
matrix.postScale(scaleWidth, scaleHeight);
//然后储存旋转
matrix.postRotate(45);
//创建新图片
Bitmap resizedBitmap = Bitmap.createBitmap(originalBitmap,
0,
0,
width,
height,
matrix,
true);
//把上面的转换过的图片变成Drawable对象,让它可以放到imageview里
BitmapDrawable bmd = new BitmapDrawable(resizedBitmap);
ImageView imageView = new ImageView(this);
imageView.setImageDrawable(bmd);
//将图片居中显示
//imageView.setScaleType(ScaleType.CENTER);
//将ImageView添加到layout里
linLayout.addView(imageView,
new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
setContentView(linLayout);
}
LinearLayout getLayout(){
return linLayout;
}
}运行后debug里显示:
[2011-06-07 23:37:11 - AndroidApp] Android Launch!
[2011-06-07 23:37:11 - AndroidApp] adb is running normally.
[2011-06-07 23:37:11 - AndroidApp] Performing com.enseignement.AndroidApp.App activity launch
[2011-06-07 23:37:11 - AndroidApp] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'Android22'
[2011-06-07 23:37:11 - AndroidApp] WARNING: Application does not specify an API level requirement!
[2011-06-07 23:37:11 - AndroidApp] Device API version is 8 (Android 2.2)
[2011-06-07 23:37:13 - AndroidApp] Application already deployed. No need to reinstall.
[2011-06-07 23:37:13 - AndroidApp] Starting activity com.enseignement.AndroidApp.App on device emulator-5554
[2011-06-07 23:37:15 - AndroidApp] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.enseignement.AndroidApp/.App }
[2011-06-07 23:37:15 - AndroidApp] ActivityManager: Warning: Activity not started, its current task has been brought to the front然后就运行失败了。。怎么回事呢
出现这个错误说明你的模拟器已经有项目在运行了,也就是说被占用了!你可以在project->clean 然后选择全部的项目,重新运行你的项目就行了!
[2011-06-07 23:37:11 - AndroidApp] WARNING: Application does not specify an API level requirement!
[2011-06-07 23:37:11 - AndroidApp] Device API version is 8 (Android 2.2)
出现这个问题,说明你项目的API与你模拟器的API不匹配!最好的办法就是让版本全部统一!
在ANdroidManifest.xml下加入
<manifest>
<uses-sdk android:minSdkVersion="7" />
<application android:icon ............
...
</manifest>
手册上有介绍 http://developer.android.com/guide/appendix/api-levels.html
[2011-06-07 23:37:11 - AndroidApp] Device API version is 8 (Android 2.2)
API版本不匹配项目目录下面有一个defalut.properties这个文件,是配置文件,
进入这个文件,target=android-8,把这个8改成你的模拟器匹配的API版本,如果是2.1就是7,2.2就是8,1.6就是4[2011-06-07 23:37:15 - AndroidApp] ActivityManager: Warning: Activity not started, its current task has been brought to the front这个问题有两种解决方法:一,project->clean 二,第一种方法不行的话,关闭模拟器,重新启动就可以拉!!楼主试试吧!@
而且试过project-clean还是重启模拟器都无效一样的结果
[2011-06-07 23:37:11 - AndroidApp] Device API version is 8 (Android 2.2)
这个错一般不碍事,程序还是能运行
Application does not specify an API level requirement
lz的工程用的应该是2.3的包[2011-06-07 23:37:15 - AndroidApp] ActivityManager: Warning: Activity not started, its current task has been brought to the front
出现这个错是因为你的程序已经运行过一次,程序还没启动起来又运行一次,建议楼主慢点。解决办法随便找个工程里面的类加个空格,空行之类的,再运行次就好了或者就是按返回键盘再运行程序就ok了
public class App extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button bouton = (Button)findViewById(R.id.bottom);
bouton.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
Intent intent = new Intent();
intent.setClass(App.this, SecondActivity.class);
startActivity(intent);
}
});
}
}切换后该显示的Activity:
public class SecondActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
}
}然后XML文件也没什么好看的 就一个textview和一个button而已
我就不明白了到底怎么回事!!!