相关疑难解决方法(0)

是否可以为整个应用程序设置自定义字体?

我需要为我的整个应用程序使用某些字体.我有相同的.ttf文件.是否可以在应用程序启动时将其设置为默认字体,然后在应用程序的其他位置使用它?设置后,如何在布局XML中使用它?

java android android-fonts

266
推荐指数
12
解决办法
15万
查看次数

如何在android中为按钮文本设置特定字体?

我希望我的按钮文本在Copperplate Gothic Light字体中,但我还没有遇到一个简单的干净代码,因为它具有简单的功能.救命!

PS:由于android自带了ariel和其他一些字体,我们需要导入 (因为我刚接触这个字体而缺少更好的单词)我们希望使用的字体.这就是我迄今为止所能收集到的所有内容,这就是我的最终结果.

fonts android text button

37
推荐指数
2
解决办法
5万
查看次数

关于(可能的)Android内存泄漏无能为力

OutOfMemoryErrors即使在确保我的所有位图都已正确缩放之后,我也一直面临着一些烦人的问题.事实上,这个问题似乎与Bitmaps根本没有关系,但我可能错了.

出于测试和错误隔离的目的,我一直在使用导航抽屉(不使用后退按钮)在两个活动之间切换(让我们称之为Main和List).我可以在DDMS中看到每次返回时分配的内存增加大约180 KB.

我已完成内存转储并使用eclipse MAT分析3个不同的时间点:

屏蔽1

画面2

屏幕3

我怀疑内存泄漏,但我无法找到原因.根据内存转储,它看起来像是"剩余"并且java.lang.FinalizerReference不断增加.这个问题的用户在FinalizerReferences他的内存转储中也有很多,但答案还不是很清楚.

我在最后一个时间点提出的泄漏嫌疑人报告并不是很有帮助,因为它怀疑android.content.res.Resources并且android.graphics.Bitmap随着时间的推移似乎没有增长:

Screen3LeakReport

在其中一份报告中(遗憾的是,这里没有),我看到13个被android.widget.ListView指出为潜在泄密嫌疑人的实例.

这些内存增加发生在活动之间的任何转换(不仅仅是本例中使用的Main和List).

如何找到(非显而易见的?)内存泄漏?我一直在摸不着头脑,所以任何帮助和提示都会很棒.

编辑:

  • 位图(@ OrhanC1):我已经评论Bitmap了上面提到的两个活动中的任何实例,内存仍在增加.内存转储仍显示一些位图,但我相信它们与资源有关,而不是我分配的实际位图.

  • 关于自定义字体(@erakitin):我正在使用它们,但我使用单例Typeface在我的Application上下文(public class MyApp extends Application)中保留每个字体的单个实例.我已经尝试评论上面提到的两个活动中对字体的任何引用,内存仍然增加.

  • 我不认为我正在泄漏Context(@DigCamara):我没有在这两个活动中持有任何静态引用,我使用Application上下文而不是Activity在适配器中的's.如果我保持相同Activity并进行一些屏幕旋转,则内存不会增加.

  • 基于@ NickT的评论:我可以看到我有两个活动的很多实例.这些内存增加是否只是后端堆栈活动数量增加而不是内存泄漏的结果(虽然操作系统处理的内容显然没有)?如果我使用FLAG_ACTIVITY_REORDER_TO_FRONTintent标志,那么内存只会增加,直到所有不同的活动都被实例化(一次).这个问题很有用:当内存不足时,Android不会从堆栈中查杀活动.

java android memory-leaks bitmap eclipse-memory-analyzer

24
推荐指数
1
解决办法
7919
查看次数

ViewPager,PagerAdapter和Bitmap导致内存泄漏(OutOfMemoryError)

我已经构建了一个显示天气数据的Android应用程序(如果你想测试问题,我可以私下给你一个应用程序名称).用户可以从一天浏览到另一天以查看特定日期的天气.

应用架构

我的应用程序使用片段(单个MainActivity和导航抽屉调用特定片段).

DayPagerFragment使用ViewPager具有无限数量的页面(动态片段).页面代表一天.

DayPagerFragment

public class DayPagerFragment extends Fragment {

    private ViewPager mViewPager;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_day, container, false);
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        mViewPager = (ViewPager) view.findViewById(R.id.pager);
        mViewPager.setOffscreenPageLimit(1);
        mViewPager.setAdapter(new DayAdapter(getChildFragmentManager()));
    }

    private static class DayAdapter extends FragmentStatePagerAdapter {

        public DayAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            return DayFragment.newInstance(null);
        }

        @Override
        public int getCount() {
            // I don't …
Run Code Online (Sandbox Code Playgroud)

android memory-leaks android-imageview android-fragments android-viewpager

6
推荐指数
1
解决办法
7496
查看次数