tag 标签: appcompat

相关博文
  • 热度 24
    2015-11-4 15:24
    1048 次阅读|
    0 个评论
    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