线程辅助

时间:2014-07-31 10:22:05

标签: android multithreading

我需要一些帮助,

我正在创建一个应用程序,并希望它运行得更快我的意思是当应用程序首先启动它显示一个空白的白色屏幕,持续1-2秒,然后加载图像。我有一个布局背景图像和4个可点击的图像视图,带您进入下一个活动。我读到某个地方我应该使用线程来加载图像,它会将它们加载到一个单独的线程上更快,但我使用它时遇到了一些问题。

所以这里有问题和android工作室解释:

Thread thread=new Thread( 

public void run(){ 

ImageView tipka=(ImageView)findViewById(R.id.tipkaproba); 

tipka.setImageResource(R.drawable.instructions); 

LinearLayout asd=(LinearLayout)findViewById(R.id.layoutproba); 

asd.setBackgroundResource(R.drawable.backfround123); 

} 

).start(); 

现在android工作室说:

之后

  

“预期的线程(”)

之前

  

“public void run(){”

     

预期

     

On“)。start();”

无效的方法声明;返回类型必需,缺少方法体,或声明抽象。

现在我想知道:

  1. 这是否会加快加载图片的速度,(如果不是如何做到的话)

  2. 如何解决我的错误。

  3. 非常感谢!

1 个答案:

答案 0 :(得分:0)

所有图像都适合屏幕吗?!如果用户需要滚动查看其他图像,为什么一次加载所有图像?使用带适配器的网格视图加载图像。这样当应用程序启动时,只会加载屏幕上的图像,然后当用户滚动显示其他图像时!
你可以做的另一件事是每个图像有2个版本。一种低质量,小尺寸,首先加载,一种加载高质量图像。这将加载后者。您还可以计算每个图像的基色(使用开源代码或手动执行)。然后将iamgeview的背景图像设置为此颜色。所以当图像最终加载到屏幕上时。差异并不像以前那么戏剧化。
如果你想使用线程首先尝试AsyncTask。使用AsyncTask比自己定义线程更简单。

尽量减小图像的大小!如果你能做到这一点。它比任何其他技巧都更好!它的移动性,您不必显示超高质量的图像。用户甚至不会注意到大部分时间
您可能会对此进行处理,但值得一提的是,您需要为不同的屏幕密度提供不同的图像,这对于性能和质量至关重要。