我有一个要求,其中我需要有一个加载图像的水平滚动视图。图像没有固定的数字,因为我从服务器获取内容。
不推荐使用Gallery,并且应该使用ViewPager(如android docs中所述)
如何在水平滚动视图中使用无限数量的图像?
答案 0 :(得分:0)
从Github试用这个项目。这应该满足您的需求。以下是pakerfeldt / android-viewflow
的链接答案 1 :(得分:0)
String RecentBooks="http://";
ArrayList<List<String>> arrrecentbooks= new ArrayList<List<String>> ();
//HorizontalScrollview created programaticallly
HorizontalScrollView scollviewh = new HorizontalScrollView(this);
View v1=null;
LinearLayout linear_pmain = new LinearLayout(this);
linear_pmain.setOrientation(LinearLayout.HORIZONTAL);
// linear_pmain.setBackgroundDrawable(getResources().getDrawable(R.drawable.topshelf));bottomthumbnail
// arrrecentbook包含从uri
解析的图像 int length=arrrecentbooks.size();
for(int j=0;j<length;j++)
{
LayoutInflater vii = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v1=vii.inflate(R.layout.thumbnailrowlayout, null);
List<String> listitem=arrrecentbooks.get(j);
String rimageurl=listitem.get(13);
String rbookprice=listitem.get(10);
img=(ImageView) v1.findViewById(R.id.imgg);
TextView txt=(TextView) v1.findViewById(R.id.txtg);
txt.setText("Rs."+rbookprice+"/-");
txt.setTypeface(tf,Typeface.NORMAL);
img.setTag(new String[]{listitem.get(0),listitem.get(1),listitem.get(2),listitem.get(3),listitem.get(4),listitem.get(5),listitem.get(6),listitem.get(7),listitem.get(8),listitem.get(9),listitem.get(10),listitem.get(11),listitem.get(12),listitem.get(13),listitem.get(14),listitem.get(15),listitem.get(16),listitem.get(17),listitem.get(18),listitem.get(19),listitem.get(20),"recentbooks"});
//image loaded to image view
{
imageLoader=new ImageLoader(this);
imageLoader.DisplayImage(rimageurl, this, img);
}
img.setOnClickListener(myIItemClickListener);
linear_pmain.addView(v1);
}
scollviewh.addView(linear_pmain);
lrecentbooks.addView(scollviewh);
//imgeview on itemclick listener
public OnClickListener myIItemClickListener = new OnClickListener(){
@Override
public void onClick(View v) {
try{
RelativeLayout borderlyt=(RelativeLayout)findViewById(R.id.Booklyut);
borderlyt.setBackgroundResource(R.drawable.bgorange);
String[] Qtag = (String[]) v.getTag();
Log.d("myItemClickListener", Qtag + "");
//v.setBackgroundResource(R.drawable.bgorange);
Intent itemintent = new Intent(cxt,NoolDashboardDetailPage.class);
Bundle b = new Bundle();
b.putStringArray("iarray", Qtag);
b.putInt("mflag", 0);
itemintent.putExtra("android.intent.extra.INTENT", b);
startActivityForResult(itemintent,2);
}
catch (Exception e) {
// TODO: handle exception
}
}
};