如何在drawable文件夹中更改图像的内容然后使用它

时间:2015-09-28 17:41:05

标签: java android

我有一个应用程序,在drawable文件夹中使用.jpg个文件在viewPager中显示。 我想防止简单地窃取我的apk drawable文件。所以在将它们加载到drawable文件夹之前,我在.jpg文件内容名称中更改了一个唯一的单词Original

ےطےل Original  II*            ےى Ducky

Fake

ےطےل Fake  II*            ےى Ducky

这会导致.Jpg文件无法读取。然后我将不可读的文件加载到可绘制的文件夹中。

  

我需要一种方法将Fake替换为Original,然后将其发送到mResources。我不知道怎么做,请一步一步解释!!

class CustomPagerAdapter extends PagerAdapter {

int[] mResources = {
    R.drawable.first,
    R.drawable.second,
    R.drawable.third,
    R.drawable.fourth,
    R.drawable.fifth,
    R.drawable.sixth
};

Context mContext;
LayoutInflater mLayoutInflater;

public CustomPagerAdapter(Context context) {
    mContext = context;
    mLayoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public int getCount() {
    return mResources.length;
}

@Override
public boolean isViewFromObject(View view, Object object) {
    return view == ((LinearLayout) object);
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
    View itemView = mLayoutInflater.inflate(R.layout.pager_item, container, false);

    ImageView imageView = (ImageView) itemView.findViewById(R.id.imageView);
    imageView.setImageResource(mResources[position]);

    container.addView(itemView);

    return itemView;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
    container.removeView((LinearLayout) object);
}

}

1 个答案:

答案 0 :(得分:0)

这不是你想听到的答案,但是......

我不会花太多时间试图让你的文件不可读。即使你让它发挥作用,你也可能真的会减慢你的应用程序速度和/或使其不那么健壮。如果没有太多额外的麻烦,您可能会破坏操作系统代表您执行的所有自动资源选择(用于方向,屏幕密度等)。

更改允许的图形程序可能仍然可以读取您改变的drawable。而且他们总是容易被屏幕抓取。

IMO,最好花时间让你的应用程序尽可能好,让竞争对手尝试追赶。开发非平凡的Android应用程序可能非常具有挑战性,而无需尝试覆盖内置行为。