小编Mik*_*e B的帖子

Android ViewPager/PagerAdapter ImageView OutOfMemoryError

我在StackOverflow和其他地方看到了类似于此的各种问题,但这些解决方案似乎都没有解决我的问题,如下所示:

我有一个带有简单PagerAdapter的ViewPager.每个"页面"都有一个与之关联的XML布局,其中包含至少一个TextView,一个ImageView,有时还包含另一个TextView.与ImageView相关联的图像在一维中通常为1000px而在另一维中较少,但它们是8位索引的Gif,因此它们都不比20kB大得多.我将它们设置为Drawables,然后适当缩小以适应分配给它们的空间.

只有6页.当我启动活动时,它工作正常,我甚至可以翻到最后一页,但如果我一直向右翻转然后一直向左翻转,我得到一个OutOfMemoryError.这对我来说没有意义,因为我认为ViewPager应该在超过1个屏幕之外销毁页面,并且我正在处理destroyItem(),如其他地方所建议的那样.

以下是PagerAdapter的代码:

package doop.doop.dedoop;

import doop.doop.dedoop.R.layout;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

public class HelpPagerAdapter extends PagerAdapter{
    private Context applicationContext;
    private Context activityContext;

    public HelpPagerAdapter(Context appContext, Context activContext){
        applicationContext = appContext;
        activityContext = activContext;
    }

    public int getCount() {
        return 6;
    }

    public Object instantiateItem(ViewGroup collection, int position) {
        LayoutInflater inflater = (LayoutInflater) collection.getContext()
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        int resId = 0;
        int ivId = 0;
        int drawId = 0;
        switch (position) { …
Run Code Online (Sandbox Code Playgroud)

android out-of-memory android-viewpager

10
推荐指数
2
解决办法
6066
查看次数

嵌套正则表达式的Emacs语法高亮显示

我正在尝试编写一个Emacs主要模式来处理生物序列数据(即DNA和多肽),我想实现语法高亮,其中不同的字母颜色不同.由于该模式需要能够区分DNA序列和氨基酸序列并对它们进行不同的着色,我将文件中的每个序列放在一行中,并带有单字符前缀(+或#),表示后续行如何应该突出显示.

因此,例如,如果文件包含一行读取:

+AAGATCCCAGATT
Run Code Online (Sandbox Code Playgroud)

"A"应该都是一种颜色,与行的其他部分不同.

我尝试了以下测试:

(setq dna-keyword
 '(("^\+\\([GCT\-]*\\(A\\)\\)*" (2 font-lock-function-name-face))
  )
)

(define-derived-mode bioseq-mode fundamental-mode
  (setq font-lock-defaults '(dna-keyword))
  (setq mode-name "bioseq mode")
)
Run Code Online (Sandbox Code Playgroud)

但这只匹配最后一个A而不是所有它们.

我的第一个想法是尝试将整行与一个正则表达式匹配,然后使用另一个正则表达式来匹配该行中的A,但我不知道这是否可能在font-lock-mode的上下文中或者它将如何实现.关于如何做这样的事情,或者如何以不同的方式实现这一目标的任何想法?

lisp regex emacs bioinformatics font-lock

5
推荐指数
1
解决办法
1012
查看次数