我正在使用自定义列表视图来显示图像和文本。下面是我的列表视图项的布局文件和后面的代码。我会在帖子的底部解释我的问题。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="5dp"
tools:context=".MainActivity" >
<ImageView
android:id="@+id/imgTitleImage"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:scaleType="fitXY" />
<TextView
android:id="@+id/tvNewsTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/imgTitleImage"
android:layout_alignStart="@+id/imgTitleImage"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingLeft="10dp"
android:paddingStart="10dp"
android:paddingRight="10dp"
android:paddingEnd="10dp"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:gravity="top|start"
android:textColor="#FFFFFF"
android:background="#80000000" />
</RelativeLayout>
下面是将必要信息加载到列表视图中的后端代码。
public View getView(final int position, View convertView, ViewGroup parent)
{
SessionManagement sessionmanagement = new SessionManagement(context);
ViewHolder holder = null;
if (convertView == null) {
convertView = inflater.inflate(R.layout.news_item, null);
holder = new ViewHolder();
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Touch on view handle
ObjNews objNews = objNewss[position];
Intent intent = new Intent(activity, NewsViewActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("newsId", String.valueOf(objNews.newsId));
intent.putExtra("type", String.valueOf(Config.NEWS_BRANCH));
context.startActivity(intent);
}
});
holder.imageView = (ImageView)convertView.findViewById(R.id.imgTitleImage);
//calculate the screen size and image ratio
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
float screenRatio = width / 320f;
holder.imageView.getLayoutParams().height = (int)(75f * screenRatio);
holder.imageView.getLayoutParams().width = (int)(320f * screenRatio);
Bitmap titleImage = Global.GetBitmapFromURL("http://www.domain.com/" + objNewss[position].titleImage);
if(titleImage != null)
{
holder.imageView.setImageBitmap(titleImage);
}
else
{
holder.imageView.setImageDrawable(context.getResources().getDrawable(R.drawable.news_title_default));
}
//customizing view
holder.textView = (TextView)convertView.findViewById(R.id.tvNewsTitle);
holder.textView.setText(objNewss[position].title);
return convertView;
}
12-21 03:54:20.827:D/OpenGrenderer(1248):启用调试模式0
12-21 03:54:20.955:我/编舞(1248):跳过36帧!应用程序可能在其主线程上做了太多的工作。
12-21 03:54:24.991:D/DalvikVM(1248):GC_FOR_ALLOC释放467K,14%释放4447K/5116K,暂停8ms,共17ms
12-21 03:54:35.607:D/DalvikVM(1248):GC_FOR_ALLOC自由<1K,16%自由4560K/5368K,暂停14ms,共15ms
12-21 03:54:43.363:D/DalvikVM(1248):GC_FOR_ALLOC释放322K,18%释放4415K/5368K,暂停8ms,共8ms
12-21 03:54:44.611:D/DalvikVM(1248):GC_FOR_ALLOC释放281K,18%释放4415K/5368K,暂停8ms,共9ms
12-21 03:54:46.531:W/EGL_GenyMotion(1248):未实现eglSurfaceAttrib
12-21 03:54:48.115:D/DalvikVM(1248):GC_FOR_ALLOC释放284K,18%释放4420K/5368K,暂停8ms,共10ms
12-21 03:54:49.983:D/DalvikVM(1248):GC_FOR_ALLOC释放323K,18%释放4429K/5368K,暂停6ms,共6ms
12-21 03:54:50.339:D/DalvikVM(1248):GC_FOR_ALLOC释放280K,18%释放4439K/5368K,暂停11ms,共11ms
12-21 03:54:50.551:我/编舞(1248):跳过1523帧!应用程序可能在其主线程上做了太多的工作。
12-21 03:54:51.263:D/DalvikVM(1248):GC_FOR_ALLOC释放288K,17%释放4500K/5368K,暂停8ms,共9ms
12-21 03:54:54.115:D/DalvikVM(1248):GC_FOR_ALLOC释放326K,17%释放4497K/5368K,暂停7ms,共9ms
12-21 03:54:54.531:D/DalvikVM(1248):GC_FOR_ALLOC释放281K,17%释放4496K/5368K,暂停10ms,共10ms
12-21 03:54:55.871:D/DalvikVM(1248):GC_FOR_ALLOC释放287K,17%释放4506K/5368K,暂停8ms,共9ms
12-21 03:54:56.591:D/DalvikVM(1248):GC_FOR_ALLOC释放324K,17%释放4506K/5368K,暂停7ms,共8ms
12-21 03:54:57.339:D/DalvikVM(1248):GC_FOR_ALLOC释放281K,17%释放4506K/5368K,暂停7ms,共8ms
可能是由于“位图titleImage=global.getbitmapfromurl(”http://www.domain.com/“+objnewss[position].titleImage);”这行代码。如果注释,加载明显更快。
请问有没有专家给我更好的建议?更好的是,如果可以实现异步加载,如groupon等,它加载和显示行,不会干扰用户体验。
非常感谢。
Global.GetBitMapFromurl似乎在主线程上运行。任何网络请求都应该在单独的线程上完成,所以您应该将其移到AsyncTask或Loader中,这样可以解决问题。
我正在编写一种方法来查找高达n的素数(埃拉托色尼筛),是的,这是为了家庭作业。我希望在我编写的方法中提高性能。在过去的几天里,我一直在调整这个,但无法遵循给定的伪代码并提高性能。 伪代码如下: 创建一个数字队列来处理 用包含2到n的整数填充队列 创建一个空的结果队列来存储素数 重复以下步骤: 通过从数字队列中删除第一个值来获取下一个素数p 将p放入素数的结果队列 循环通过数字队列消除所有可被p整除
所以我在FXML中定义了一个ListView 以及相应的方法 方法不是很大,但是第一行代码只在5秒后执行!但是在同一程序中的另一个ListView中,ListView没有速度问题?怎么会呢?如果需要任何其他信息,请评论
我们正在尝试使用Apache Phoenix驱动程序来提高HBase设置的读取性能,以对抗约1150万条记录的数据集。 HBase 0.98 Apache Phoenix driver 4.3.1 Squirrel Client 3.2 该表由21列组成,下面是DDL语句: 我们已经对表执行了salting(salt buckets=3),并在所有列上创建了一个辅助索引(不可变索引)。 我们执行以
我们看到ORC和带分区的ORC执行相同(有时我们看到B/W ORC分区和不带分区的ORC差别很小)。带分区的ORC会比ORC表现更好吗。带分区桶的ORC会比ORC分区表现更好吗?。我看到每个ORC分区文件都接近50-100 MB,ORC带外分区(每个文件大小为30-50 MB)。 **注:120 GB的Un压缩数据被压缩为17 GB的ORC文件格式
我们在当前项目中使用GWT 2.4版。在服务器端,我们使用Spring 我们使用Maven作为构建工具。该应用程序正在JBOSS 7服务器上部署。 目前,我们在一个Eclipse项目中拥有所有内容。指一个应用程序。gwt。xml文件和一个ApplicationContext。spring的xml。我们有大约2000个Java文件,其中大约1500个用于GWT相关的源文件。 该项目仍在增长,源文件越
一、目标 在图像处理中,由于您每秒处理大量操作,因此您的代码必须不仅提供正确的解决方案,而且还要以最快的方式提供。所以在本章中,您将学习 衡量代码的性能。 一些提高代码性能的技巧。 您将看到以下函数:cv2.getTickCount,cv2.getTickFrequency等。 除了OpenCV之外,Python还提供了一个time模块,有助于测量执行时间。另一个profile模块有助于获得有关代