Tho*_*alc 5 java android drawable android-layout
如果我预加载某些图像,在我的应用程序中是有利的.我这样做是正确的,在的AsyncTask,因为它是书面的正式文档.但是我有一个关于何时应该设置的问题/疑问.
我将展示代码片段.需要注意的是它简化了(他们的互操作性是我真正的代码更好,它会检查空值,等等).
让我们先看看原始(非预装)版本:
<ImageView
android:id="@+id/imageViewMyGraphicalImageElement"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop"
android:src="@drawable/my_graphical_element" >
</ImageView>
Run Code Online (Sandbox Code Playgroud)
预加载版本具有以下XML(请注意缺少src属性):
<ImageView
android:id="@+id/imageViewMyGraphicalImageElement"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop">
</ImageView>
Run Code Online (Sandbox Code Playgroud)
以及预装代码的片段:
sBitmap = bitmapBitmapFactory.decodeResource(context.getResources(), R.drawable.my_graphical_element, options);
// 'sBitmap' is a Bitmap reference, while 'options' is BitmapFactory.Options
Run Code Online (Sandbox Code Playgroud)
最后,我设置它的地方:
setContentView(R.layout.main);
...
ImageView imageViewMyGraphicalImageElement= (ImageView) findViewById(R.id.imageViewMyGraphicalImageElement);
imageViewMyGraphicalImageElement.setImageBitmap(sBitmap);
Run Code Online (Sandbox Code Playgroud)
问题:显然,基于xml的解决方案在调用setContentView(...)之前知道图像.预加载版本在该调用之后设置图像.有什么区别吗?由于这个原因,是否可以跳过某些自动缩放或系统完成的其他事情?
完全没有区别。您可以认为ImageView
构造函数对android:src
属性所做的所有操作都是 call setImageResource
。
更新:实际上它使用setImageDrawable
,这是构造函数获取属性的实际代码ImageView
:
Drawable d = a.getDrawable(com.android.internal.R.styleable.ImageView_src);
if (d != null) {
setImageDrawable(d);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2699 次 |
最近记录: |