在ImageView中查看类

时间:2011-07-30 06:43:14

标签: android

我开发了一个我想玩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中设置视图

感谢
尼克

1 个答案:

答案 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时所期望的。