最近项目开发中遇到的各种小问题和技巧
2015-12-28 17:06
417 查看
1.eclipse突然变得非常的卡,而且经常卡死不动
原因:内存不足所以会卡死。
解决:配置一下eclipse.ini修改这几个值就好了
可以让我们的Fragment 直接继承LazyFragment 然后重写lazyLoad()方法实现懒加载
4.横竖屏切换
在Android中要让一个程序的界面不随手机方向转动而产生横竖屏切换的方法: 只要在AndroidManifest.xml里面配置就可以了。在AndroidManifest.xml的activity配置中加入android:screenOrientation=”landscape”属性即可(landscape是横向,portrait是纵向)。
需要注意的是,android中每次屏幕方向切换时都会重启Activity,所以我们应该在Activity被销毁前保存当前活动的状态,在Activity再次Create的时候载入配置,那样,进行中的游戏就不会自动重启了!要避免在转屏时重启activity,可以通过在androidmanifest.xml文件中重新定义方向,添加activity属性 android:configChanges=”keyboardHidden|orientation”即可。
原因:内存不足所以会卡死。
解决:配置一下eclipse.ini修改这几个值就好了
-XX:MaxPermSize=768m -Xms1024m -Xmx3072m 2.调用百度视频SDK出现问题 (1).报错: Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x0 原因:引用的SDK的类BMediaController所指向的drawable资源文件没有导入 解决:导入drawable资源 (2).报错: D/AndroidRuntime( 5603): Shutting down VM E/AndroidRuntime( 5603): FATAL EXCEPTION: main E/AndroidRuntime( 5603): java.lang.UnsatisfiedLinkError: Couldn't load cyberplayer-core: findLibrary returned null 原因:无法定位加入的libcyberplayer-core.so和libcyberplayer.so 解决:在libs下新建一个armeabi-v7a,然后将libcyberplayer-core.so和libcyberplayer.so复制一份到该文件夹” 如果这个不行, 那么新建一个armeabi文件夹再放入libcyberplayer-core.so和libcyberplayer.so就可以了。 3.使用fragment懒加载 避免初始化大量资源 使用方法:布局文件添加<com.myface.view.SwipyRefreshLayout>如下
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" android:orientation="vertical" > <com.myface.view.SwipyRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swipe_container" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@+id/VideoListView" android:layout_width="fill_parent" android:layout_height="wrap_content" > </ListView> </com.myface.view.SwipyRefreshLayout> </LinearLayout>
可以让我们的Fragment 直接继承LazyFragment 然后重写lazyLoad()方法实现懒加载
public class MyFaceChoiceFragment extends LazyFragment { private View view; private ListView listView; // 标志位,标志已经初始化完成。 private boolean isPrepared; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment_myfaceclassroom, container, false); isPrepared = true; lazyLoad(); return view; } @Override protected void lazyLoad() { if (!isPrepared || !isVisible) { return; } initView(); } private void initView() { listView = (ListView) view.findViewById(R.id.VideoListView); } }
import android.support.v4.app.Fragment; public abstract class LazyFragment extends Fragment { protected boolean isVisible; /** * 在这里实现Fragment数据的缓加载. * * @param isVisibleToUser */ @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (getUserVisibleHint()) { isVisible = true; onVisible(); } else { isVisible = false; onInvisible(); } } protected void onVisible() { lazyLoad(); } protected abstract void lazyLoad(); protected void onInvisible() { } }
4.横竖屏切换
在Android中要让一个程序的界面不随手机方向转动而产生横竖屏切换的方法: 只要在AndroidManifest.xml里面配置就可以了。在AndroidManifest.xml的activity配置中加入android:screenOrientation=”landscape”属性即可(landscape是横向,portrait是纵向)。
需要注意的是,android中每次屏幕方向切换时都会重启Activity,所以我们应该在Activity被销毁前保存当前活动的状态,在Activity再次Create的时候载入配置,那样,进行中的游戏就不会自动重启了!要避免在转屏时重启activity,可以通过在androidmanifest.xml文件中重新定义方向,添加activity属性 android:configChanges=”keyboardHidden|orientation”即可。
相关文章推荐
- iGrimaceV8重新安装教程
- 文件与结构体
- socket udp通信
- Android中的广播Broadcast详解
- kettle:mongdb与mysql互传数据
- SQL Server获取下一个编码字符实现
- Javascript中eval解析的json的几种用法
- 【面试题】:两水桶倒水问题
- 点击input输入法不弹出
- JComboBox添加item的赋值类型问题!不一致的话会导致不能更改jcombobox的选择值
- Zabbix之JMX监控Tomcat
- 监控 zabbix安装篇
- IPhone升级防流量偷跑iOS省流量技巧
- C# 本地储存文本的几种方式
- SecureCRT 7.0 如何自动记录日志
- 在Xcode7中安装Alcatraz安装失败,超有用
- Jboss 服务器SSL证书安装指南
- Android使用OkHttp post 键值对
- JSON.parse()和JSON.stringify()&&traditional(ajax请求)的作用
- UVA 11806 Cheerleaders dp+容斥