2014-09-10 65 views
2

ImageView为我们写一个抽象类:我们不要实例ImageView的,仍然它的工作原理

import android.widget.ImageView; 
public class LoadActivity extends Activity { 
    boolean doubleBackToExitPressedOnce = false; 
    ImageView im; 
    Animation rotate; 
    private Handler mHandler; 
    private Runnable mRunnable; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.load); 
     im = (ImageView) findViewById(R.id.load_icon); 
     rotate = AnimationUtils.loadAnimation(getApplicationContext(), 
       R.anim.load_page); 
     rotate.setInterpolator(new LinearInterpolator()); 
     im.startAnimation(rotate); 

     mHandler = new Handler(); 
     mRunnable = new Runnable() { 
      @Override 
      public void run() { 
       Intent nextPageIntent = new Intent(getApplicationContext(), 
         P1.class); 
       startActivityForResult(nextPageIntent, 0); 
      } 
     }; 

     mHandler.postDelayed(mRunnable, 3000); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     im.startAnimation(rotate); 

    } 
} 

所以我们不使用new键盘来实例化。我无法理解,请帮助。这是我的整个代码。

我的问题是,ImageView不是一个抽象类,但ImageView im;正在工作。 不应该是ImageView im = new ImageView();

为什么不使用?

+0

查看文档%http://developer.android.com/reference/android/widget/ImageView.html – aga 2014-09-10 09:56:41

+0

您的代码无法使用 - 请发布您正在使用的实际代码....如前所述,“ImageView”不是抽象类,“findViewById”用于查找“膨胀”的“视图”。 – Squonk 2014-09-10 10:03:50

+0

我编辑过 – 2014-09-10 10:15:36

回答

1

ImageView不是一个抽象类。

findViewById(int)将在该UI中检索您需要以编程方式进行交互的小部件。

它查找由onCreate(Bundle)中处理的XML的id属性标识的视图。

ImageViewView类扩展,所以我们将其ID用这种方法

0

不,它不是抽象类,可以用许多构造函数实例化。

0

ImageView不是ANS抽象类获得一个视图实例。

findViewById(int)将检索该用户界面中的窗口小部件,这些窗口小部件是通过编程方式自行处理的。

视图由layoutInflator充气。当你调用setContentView时,xml布局被占用,并且创建视图层次结构。

属性由layout inflater传递给Button的构造函数。检查LayoutInflator

0

号看一看the source

它通常写出来的一样,因为你通常膨胀视图,所有的该层次中的子视图将建造适合你。

相关问题