我开发了一个我想玩gif动画的应用程序。 因为我已经提到了this
CODE
public class GIFDemo extends GraphicsActivity {
ImageView imageView1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageView1 = (ImageView) findViewById(R.id.imageView1);
}
private static class GIFView extends View{
Movie movie,movie1;
InputStream is=null,is1=null;
long moviestart;
long moviestart1;
public GIFView(Context context) {
super(context);
is=context.getResources().openRawResource(R.drawable.border_gif);
movie=Movie.decodeStream(is);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(0xFFCCCCCC);
super.onDraw(canvas);
long now=android.os.SystemClock.uptimeMillis();
if (moviestart == 0) { // first time
moviestart = now;
}
if(moviestart1==0)
{
moviestart1=now;
}
int relTime = (int)((now - moviestart) % movie.duration()) ;
// int relTime1=(int)((now - moviestart1)% movie1.duration());
movie.setTime(relTime);
// movie1.setTime(relTime1);
movie.draw(canvas,10,10);
//movie1.draw(canvas,10,100);
this.invalidate();
}
}
}
主要:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<ImageView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/imageView1"
android:src="@drawable/icon"></ImageView>
</LinearLayout>
所以问题是我想在GIFView
中设置课程Imageview
,所以我推荐了this这样的帖子
但没有得到适当的例子。那么你能否给我一些正确的例子和解释如何在ImageView中设置视图
感谢
尼克
答案 0 :(得分:3)
我认为{设置ImageView
的视图(按照你建议的方式)并不重要,我认为你甚至不需要ImageView
案件。您已经实现了一个自定义View
,可以在不依赖ImageView
类的情况下绘制GIF - 您只需使用它!
如果更改很少,假设GIFView
有效,您可以实例化GIFView
,然后将其添加到主布局。让您的onCreate
如下:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// let your LinearLayout have an id of 'container'
LinearLayout container = (LinearLayout) findViewById(R.id.container);
GIFView gifView = new GifView(this);
container.addView(gifView);
}
您可以完全摆脱布局中的ImageView,只需使用在代码中实例化的GIFView
即可。或者,您可以将GIFView
作为独立(非内部)类,并通过指定完整的包名称将其添加到XML布局中,例如:
<com.nik.view.GIFView
id="@+id/gifview"
... />
您还需要编写视图构造函数GIFView(Context context, AttributeSet attrs)
,因为这是使用XML时所期望的。