4
AssetManager读取assets下多张图片资源输出到ImageView动画
source link: http://www.androidchina.net/9024.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
AssetManager读取assets下多张图片资源输出到ImageView动画 – Android开发中文站
你的位置:Android开发中文站 > 热点资讯 > AssetManager读取assets下多张图片资源输出到ImageView动画
这里面有几个要点和环节需要注意:
1,AssetManager读取事先放置到assets目录下的原始图片资源文件,组装成Android的Bitmap数组。
文件结构如图:
2,把1中读取到的Bitmap数组每隔一个较小时间内(如25ms)不间断循环设置到ImageView里面,从而在视觉上形成一种动画效果。
<br /><br />
package
zhangphil.test;<br /><br />
import
android.content.res.AssetManager;<br />
import
android.graphics.Bitmap;<br />
import
android.graphics.BitmapFactory;<br />
import
android.os.Bundle;<br />
import
android.support.annotation.Nullable;<br />
import
android.support.v7.app.AppCompatActivity;<br />
import
android.widget.ImageView;<br /><br />
import
java.io.InputStream;<br />
import
java.util.concurrent.TimeUnit;<br /><br />
public
class
AnimationActivity
extends
AppCompatActivity {<br /><%%KEEPWHITESPACE%%>
private
boolean
mStartLoadingAnimation =
false
;<br /><%%KEEPWHITESPACE%%>
private
ImageView mImageView;<br /><br /><%%KEEPWHITESPACE%%>
@Override
<br /><%%KEEPWHITESPACE%%>
protected
void
onCreate(
@Nullable
Bundle savedInstanceState) {<br /><%%KEEPWHITESPACE%%>
super
.onCreate(savedInstanceState);<br /><%%KEEPWHITESPACE%%> setContentView(R.layout.animation_activity);<br /><%%KEEPWHITESPACE%%> mImageView = findViewById(R.id.image);<br /><br /><%%KEEPWHITESPACE%%> mStartLoadingAnimation =
true
;<br /><%%KEEPWHITESPACE%%> loadingAnimation();<br /><%%KEEPWHITESPACE%%> }<br /><br /><%%KEEPWHITESPACE%%>
private
void
loadingAnimation() {<br /><%%KEEPWHITESPACE%%>
new
Thread(
new
Runnable() {<br /><%%KEEPWHITESPACE%%>
@Override
<br /><%%KEEPWHITESPACE%%>
public
void
run() {<br /><%%KEEPWHITESPACE%%> Bitmap[] bitmaps = getBimaps();<br /><%%KEEPWHITESPACE%%>
if
(bitmaps ==
null
|| bitmaps.length ==
0
) {<br /><%%KEEPWHITESPACE%%>
return
;<br /><%%KEEPWHITESPACE%%> }<br /><br /><%%KEEPWHITESPACE%%>
int
i =
0
;<br /><%%KEEPWHITESPACE%%>
while
(mStartLoadingAnimation) {<br /><%%KEEPWHITESPACE%%> mImageView.setImageBitmap(bitmaps[i++ % bitmaps.length]);<br /><br /><%%KEEPWHITESPACE%%>
try
{<br /><%%KEEPWHITESPACE%%> TimeUnit.MILLISECONDS.sleep(
25
);<br /><%%KEEPWHITESPACE%%> }
catch
(InterruptedException e) {<br /><%%KEEPWHITESPACE%%> e.printStackTrace();<br /><%%KEEPWHITESPACE%%> }<br /><%%KEEPWHITESPACE%%> }<br /><%%KEEPWHITESPACE%%> }<br /><%%KEEPWHITESPACE%%> }).start();<br /><%%KEEPWHITESPACE%%> }<br /><br /><%%KEEPWHITESPACE%%>
private
Bitmap[] getBimaps() {<br /><%%KEEPWHITESPACE%%>
final
String parentPath =
"loading"
;<br /><br /><%%KEEPWHITESPACE%%> Bitmap[] bitmaps =
null
;<br /><%%KEEPWHITESPACE%%> AssetManager am = getAssets();<br /><%%KEEPWHITESPACE%%>
try
{<br /><%%KEEPWHITESPACE%%> String[] files = am.list(parentPath);<br /><%%KEEPWHITESPACE%%> bitmaps =
new
Bitmap[files.length];<br /><%%KEEPWHITESPACE%%>
for
(
int
i =
0
; i < files.length; i++) {<br /><%%KEEPWHITESPACE%%> InputStream is = am.open(parentPath +
"/"
+ files[i]);<br /><%%KEEPWHITESPACE%%> bitmaps[i] = BitmapFactory.decodeStream(is);<br /><%%KEEPWHITESPACE%%> is.close();<br /><%%KEEPWHITESPACE%%> }<br /><%%KEEPWHITESPACE%%> }
catch
(Exception e) {<br /><%%KEEPWHITESPACE%%> e.printStackTrace();<br /><%%KEEPWHITESPACE%%> }<br /><br /><%%KEEPWHITESPACE%%>
return
bitmaps;<br /><%%KEEPWHITESPACE%%> }<br />}<br /><br />
转载请注明:Android开发中文站 » AssetManager读取assets下多张图片资源输出到ImageView动画
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK