私のアプリは26行を含むリストアクティビティであり、それぞれに画像とテキストが含まれています。すべてが正常に実行されますが、リストのスクロールには多少の遅れが見られます。デフォルトのAndroid連絡先リストのようにスムーズにスクロールすると、特にスムーズではありません。
私は試した :lv.setFastScrollEnabled(true);
また、テストのためにすべての画像をic_launcher画像に置き換えるまで、各行の画像サイズを縮小しようとしましたが、同じラグがあります。
しかし、それは私のリストのスクロールをスムーズにすることに違いはありません、どんなアドバイスや助けも大歓迎です。 注: アラビア語で名前が付けられたクラス。
私のコード:
メニュークラス:
public class Menu extends ListActivity {
String classes[] = { "المقدمة", "رحلتي", "اليوم الأول", "اليوم الثاني", "اليوم الثالث",
"اليوم الرابع", "اليوم الخامس", "اليوم السادس", "اليوم السابع", "اليوم الثامن", "اليوم التاسع", "اليوم العاشر", "اليوم الحادي عشر",
"اليوم الثاني عشر", "اليوم الثالث عشر", "اليوم الرابع عشر", "اليوم الخامس عشر", "اليوم السادس عشر", "اليوم السابع عشر",
"اليوم الثامن عشر", "اليوم التاسع عشر", "اليوم العشرون", "اليوم الحادي والعشرين", "اليوم الثاني والعشرين", "اليوم الثالث والعشرين", "الخاتمة"};
@Override
protected void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// create background for whole list as image
ListView lv = getListView();
lv.setFastScrollEnabled(true);
lv.setCacheColorHint(0);
lv.setDivider(new ColorDrawable(0xFFDAB999));
lv.setSelector(android.R.color.transparent);
lv.setDividerHeight(10);
lv.setPadding(50, 0, 50, 0);
lv.setVerticalScrollBarEnabled(false);
lv.setBackgroundResource(R.drawable.a);
setListAdapter(new MyArrayAdapter(this, classes)); }
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
String cheese = classes[position];
if(cheese.equals("المقدمة")) cheese = "Introduction";
if(cheese.equals("رحلتي")) cheese = "MyTrip";
if(cheese.equals("اليوم الأول")) cheese = "Day1";
if(cheese.equals("اليوم الثاني")) cheese = "Day2";
if(cheese.equals("اليوم الثالث")) cheese = "Day3";
if(cheese.equals("اليوم الرابع")) cheese = "Day4";
if(cheese.equals("اليوم الخامس")) cheese = "Day5";
if(cheese.equals("اليوم السادس")) cheese = "Day6";
if(cheese.equals("اليوم السابع")) cheese = "Day7";
if(cheese.equals("اليوم الثامن")) cheese = "Day8";
if(cheese.equals("اليوم التاسع")) cheese = "Day9";
if(cheese.equals("اليوم العاشر")) cheese = "Day10";
if(cheese.equals("اليوم الحادي عشر")) cheese = "Day11";
if(cheese.equals("اليوم الثاني عشر")) cheese = "Day12";
if(cheese.equals("اليوم الثالث عشر")) cheese = "Day13";
if(cheese.equals("اليوم الرابع عشر")) cheese = "Day14";
if(cheese.equals("اليوم الخامس عشر")) cheese = "Day15";
if(cheese.equals("اليوم السادس عشر")) cheese = "Day16";
if(cheese.equals("اليوم السابع عشر")) cheese = "Day17";
if(cheese.equals("اليوم الثامن عشر")) cheese = "Day18";
if(cheese.equals("اليوم التاسع عشر")) cheese = "Day19";
if(cheese.equals("اليوم العشرون")) cheese = "Day20";
if(cheese.equals("اليوم الحادي والعشرين")) cheese = "Day21";
if(cheese.equals("اليوم الثاني والعشرين")) cheese = "Day22";
if(cheese.equals("اليوم الثالث والعشرين")) cheese = "Day23";
if(cheese.equals("الخاتمة")) cheese = "Conclusion";
try{
Intent ourIntent;
if(position>1 && position<25) {
Class ourClass = Class.forName("com.tsn.dr.MyDay");
ourIntent = new Intent(Menu.this, ourClass);
ourIntent.putExtra("cheese", cheese);}
else {
Class ourClass = Class.forName("com.tsn.dr." + cheese);
ourIntent = new Intent(Menu.this,ourClass); }
startActivity(ourIntent); }
catch (ClassNotFoundException e){
e.printStackTrace(); }}
public boolean onCreateOptionsMenu(android.view.Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.cool_menu, menu);
getLayoutInflater().setFactory(new Factory() {
public View onCreateView(String name, Context context,
AttributeSet attrs) {
if (name .equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")) {
try {
LayoutInflater li = LayoutInflater.from(context);
final View view = li.createView(name, null, attrs);
new Handler().post(new Runnable() {
public void run() {
view .setBackgroundResource(R.drawable.border3);
((TextView) view).setTextSize(25);
Typeface face=Typeface.createFromAsset(getAssets(),"BFantezy.ttf");
((TextView) view).setTypeface(face);
((TextView) view).setTextColor(Color.RED);
}
});
return view;
} catch (InflateException e) {
} catch (ClassNotFoundException e) {
}
}
return null;
}
});
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.aboutUs:
Intent i = new Intent("com.tsn.dr.ABOUT");
startActivity(i);
break;
case R.id.preferences:
Intent p = new Intent("com.tsn.dr.PREFS");
startActivity(p);
break;
case R.id.exit:
finish();
break;
}
return false;
}
}
MyArrayAdapterクラス:
public class MyArrayAdapter extends ArrayAdapter<String> {
private final Activity context;
private final String[] classes;
Typeface tf;
public MyArrayAdapter(Activity context, String[] classes) {
super(context, R.layout.row, classes);
this.context = context;
this.classes = classes;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
tf=Typeface.createFromAsset(context.getAssets(),"BFantezy.ttf");
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.row, null, true);
TextView textView = (TextView) rowView.findViewById(R.id.row_label);
ImageView imageView = (ImageView) rowView.findViewById(R.id.row_image);
String s = classes[position];
textView.setText(s);
((TextView)textView).setTypeface(tf);
if ( s.startsWith("اليوم الأول")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم الثاني")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم الثالث")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم الرابع")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم الخامس")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم السادس")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم السابع")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم الثامن")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم التاسع")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم العاشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم الحادي عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم الثاني عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم الثالث عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم الرابع عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم الخامس عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم السادس عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم السابع عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم الثامن عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم التاسع عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم العشرون")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم الحادي والعشرين")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم الثاني والعشرين")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("اليوم الثالث والعشرين")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("الخاتمة")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("رحلتي")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if ( s.startsWith("المقدمة")) {
imageView.setImageResource(R.drawable.ic_launcher); }
return rowView; }}