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