原创 eclipse安卓项目取消v4,v7 appcompat支持库Support Library关联的方法

2015-11-4 15:24 1045 24 24 分类: 软件与OS 文集: 学以致用

eclipse安卓项目取消v4,v7 appcompat支持库Support Library关联的方法

wxleasyland@sina.com

2015.11.4

 

v4 Support Library

这个库是为Android 1.6(API level 4)和更高版本设计的。包括对应用组件、用户界面功能、辅助功能、数据处理、网络连接和编程工具的支持。

这个库就是一个文件“android-support-v4.jar”,它不带有界面资源,所以就直接放在你的APP的项目目录libs下面。

只要你的libs目录下有库文件,eclipse就会自动把它加入到项目中来。

新建APP项目时,eclipse会自动生成这个文件到你的项目中。

取消方法:如果你不用v4库,它的存在会增加你的APP程序安装包APK的大小,所以直接把这个文件删掉,再刷新一下项目就好了。

 

v7 appcompat library

这个库支持Action Bar用户界面。

这个库不仅有.jar文件,而且带有界面资源文件。所以是以库项目的形式出现的。在eclipse里是“appcompat_v7”这个项目。

如果你的APP项目新建时,mininum require SDK选<API14的,eclipse会自动生成“appcompat_v7”这个项目,并把你的APP项目与它相关联。(如果“appcompat_v7”项目有异常,可以把它删掉,再新建一个APP项目,“appcompat_v7”项目就会自动又出来了)

但是Action Bar要求项目在API 11以上才能用,所以项目可能会出错,见另一篇文章,或者取消这个库。

如果你不用v7 appcompat库,它的存在会增加你的APP程序安装包APK的大小,去除方法:

 

情况一、自己已有的APP项目

1. 源文件改成不含action bar的代码:

比如源文件是这样的:

import android.support.v7.app.ActionBarActivity;     ――这句改成:import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

 

public class MainActivity extends ActionBarActivity {     ――这句中改成:extends Activity

  @Override

  protected void onCreate(Bundle savedInstanceState) {

     super.onCreate(savedInstanceState);

     setContentView(R.layout.activity_main);

  }

 

  @Override

  public boolean onCreateOptionsMenu(Menu menu) {     ――这个功能方法全部删掉

     // Inflate the menu; this adds items to the action bar if it is present.

     getMenuInflater().inflate(R.menu.main, menu);

     return true;

  }

 

  @Override

  public boolean onOptionsItemSelected(MenuItem item) {     ――这个功能方法全部删掉

     // Handle action bar item clicks here. The action bar will

     // automatically handle clicks on the Home/Up button, so long

     // as you specify a parent activity in AndroidManifest.xml.

     int id = item.getItemId();

     if (id == R.id.action_settings) {

         return true;

     }

     return super.onOptionsItemSelected(item);

  }

}

 

即变成了没有action bar的代码了:

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

 

public class MainActivity extends Activity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.activity_main);

    }

}

2. 修改styles.xml文件,使其采用不带action bar的原本默认的样式:

res\values\styles.xml中有:<style name="AppBaseTheme" parent="Theme.AppCompat.Light">,改成parent="android:Theme.Light"

res\values-v11\styles.xml是:<style name="AppBaseTheme" parent="Theme.AppCompat.Light">,改成parent="android:Theme.Holo.Light"、

res\values-v14\styles.xml是:<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">,改成parent="android:Theme.Holo.Light.DarkActionBar"

 

3. 删掉menu项

把项目里的menu项(含有main.xml)整个删掉。

 

4.取消关联v7 appcompat库

在项目右键、属性、Android里,remove掉它:

5.刷新refresh一下项目,clean一下项目。应该就可以了。

 

 

情况二、新建一个APP项目

新建项目时:

mininum require SDK选API14;

Theme选什么无所谓;

后面一定要选empty activity(如果选blank activity,则生成的程序又是有action bar的代码了);

这时生成的项目就不会与“v7 appcompat库”关联的。

再把AndroidManifest.xml文件中的android:minSdkVersion="14"改成"8",就能支持低版本安卓系统了。

OK了,效果与“情况一”是完全一样的!!

 

 

因为developer.android.com这个网站被伟大的母亲墙掉了,所以资料不好找。v4、v7库的介绍和翻译可参考这个文章:http://blog.csdn.net/crazybigfish/article/details/18363351

 

文章评论0条评论)

登录后参与讨论
我要评论
0
24
关闭 站长推荐上一条 /2 下一条