Android 一个ImageView对象用于多个ImageView布局

Android 一个ImageView对象用于多个ImageView布局,android,view,imageview,Android,View,Imageview,我可以将一个ImageView对象与多个ImageView布局一起使用吗。我有4个不同的XML文件,每个文件都有一个imageview标记,它们在不同的用户条件下膨胀。但在我的代码中,我只想使用一个ImageView对象来动态分配图像资源。但我无法做到这一点,而且由于某种原因,即使对每个膨胀的版面执行imgview=(ImageView)findViewbyId(R.mylayouts.customImage)后,它仍然会显示与其关联的第一个图像资源。请帮忙。下面是im使用的寻呼机视图的公共对象

我可以将一个ImageView对象与多个ImageView布局一起使用吗。我有4个不同的XML文件,每个文件都有一个imageview标记,它们在不同的用户条件下膨胀。但在我的代码中,我只想使用一个ImageView对象来动态分配图像资源。但我无法做到这一点,而且由于某种原因,即使对每个膨胀的版面执行imgview=(ImageView)findViewbyId(R.mylayouts.customImage)后,它仍然会显示与其关联的第一个图像资源。请帮忙。下面是im使用的寻呼机视图的公共对象实例化项的代码

public Object instantiateItem(View pager, int position) {
        View v = null;
        if (position == 0) {
            v = mInflater.inflate(R.layout.mylayout1, null);
        } else if (position == 1) {
            v = mInflater.inflate(R.layout.mylayout2, null);

            if (mHelpImages1 == null) {  //int array to store image resourceID
                mHelpImages1 = new int[] { R.drawable.imageB1, R.drawable.imageB2 };
            }
            mImage1 = null;  //my imageView which i want to use everywhere
            mImage1 = (ImageView) v.findViewById(R.id.imageView1);
        } else if (position == 2) {
            v = mInflater.inflate(R.layout.myLayout5, null);

            if (mHelpImages2 == null) {
                mHelpImages2 = new int[] { R.drawable.imageB3,
                        R.drawable.imageB4 };
            }

            String strNavi = getString(R.string.myString1) + "\n" + getString(R.string.myString2);
            mImage1 = null;
            mImage1 = (ImageView) v.findViewById(R.id.myLayout3);
            mDesc2 = (TextView) v.findViewById(R.id.myString3);
            mDesc2.setText(strNavi);
        } else if (position == 3) {
            v = mInflater.inflate(R.layout.myLayout6, null);
            TextView tv = (TextView) v.findViewById(R.id.textView4);
            tv.setSelected(true);
            tv.setSingleLine();
            tv.setEllipsize(TextUtils.TruncateAt.MARQUEE);

            if (mHelpImages3 == null) {
                mHelpImages3 = new int[] { R.drawable.imageB7,
                        R.drawable.imageB8, };
            }
            mImage1 = null;
            mImage1 = (ImageView) v.findViewById(R.id.imageView8);
        } 


        ScrollView scrollview = (ScrollView) v.findViewById(R.id.scrollview);
        try {
            if (scrollview != null) {
                scrollview.updateCustomEdgeGlow(getResources().getDrawable(R.drawable.edge),
                        getResources().getDrawable(R.drawable.edge2));
            }
        } catch (NoSuchMethodError e) {
            Log.e(TAG, "updateCustomEdgeGlow ERROR");
        } catch (Exception e) {
            Log.e(TAG, "updateCustomEdgeGlow Exception");
            e.printStackTrace();
        }

        ((ViewPager) pager).addView(v, 0);
        return v;
    }
在onPageSelected中,我执行此操作

处理程序每隔3秒调用另一个函数changeImage,它会像这样更改imageView的imageResource

如果我使用多个ImageView对象,即一个布局使用一个ImageView,代码工作正常


简短的回答,是的,你可以。发布您的代码和xml,以便我们了解您的问题所在。您好,stackoverflow在我的本地网络上被阻止。我使用移动互联网,所以我现在不能发布代码,但我会尽快。在那之前,你能给我一些参考链接吗?嘿,我添加了我的代码,请帮助我,你的xml文件绝对正确吗?我注意到在这个案例中,
(position==2)
您有
mImage1=(ImageView)v.findViewById(R.id.myLayout3)
myLayout3
实际上是图像视图吗?
  public void onPageSelected(int position) {
    mPrevPosition = position;
    if (mHandler != null && mHandler.hasMessages(myMessage)) {
        mHandler.removeMessages(myMessage);
    }

    mSceneCount = 0;

    if (position != 0) {
        mHandler.sendEmptyMessageDelayed(myMessage, 0);
    }
}
private void changeImage() {

    if (mSceneCount == 100) {
        mSceneCount = 0;
    }

    switch (mPrevPosition) {
    case 1:
        if (mHelpImages1 != null) {
            int index1 = mSceneCount % mHelpImages1.length;
            Drawable mm = new BitmapDrawable(getResources(),
                    mBitmap.decodeSampledBitmapFromResource(getResources(), mHelpImages1[index1],
                            mImage1.getWidth(), mImage1.getHeight()));
            mImage1.setBackground(null);
            mImage1.destroyDrawingCache();
            mImage1.setBackground(mm);
            mm = null;
        }
        break;

        // and other switchcases here, but basically this is how i do it.


              default:
        break;
    }

    mImageCount++;
}