纯Java方式和Java与xml结合方式开发Android UI界面对比简例

Android入门对比实战一:

1、Android允许开发者抛弃xml文件用Java开发UI,下面就是一个纯java模式开发的android小例子:

功能:点击button显示文字和时间。

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);LinearLayout layout = new LinearLayout(this);layout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT));setContentView(layout);layout.setGravity(Gravity.CENTER);layout.setOrientation(LinearLayout.VERTICAL);final TextView text = new TextView(this);text.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT));Button btn = new Button(this);btn.setText(R.string.ok);btn.setLayoutParams(new ViewGroup.LayoutParams(50, ViewGroup.LayoutParams.WRAP_CONTENT));layout.addView(text);layout.addView(btn);btn.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {text.setText("Hello,Java Activity! " + new java.util.Date());}});}}

结果:

结论:任何UI都需要传入this参数,即Context。UI通过context获取Android应用环境全局info。context本自是一个抽象类,android的Activity和Service本自继承了context,所以可以直接使用。

2、Android可以使用xml文件和Java开发UI,,下面就是一个经典模式开发的android小例子:

功能:点击图片可以循环切换显示。

public class MainActivity extends Activity {ImageView image;LinearLayout layout;int[] imageSrc = {R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d,R.drawable.e, R.drawable.f, };int index;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);layout = (LinearLayout) findViewById(R.id.layout);image = new ImageView(this);image.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));layout.addView(image);image.setImageResource(imageSrc[0]);image.setOnClickListener(listener);}private OnClickListener listener = new OnClickListener() {public void onClick(View v) {image.setImageResource(imageSrc[(++index)%imageSrc.length]);}};}<LinearLayout xmlns:android=""android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:id="@+id/layout"></LinearLayout>

结果:

结论:View是所有组件的基类,所有UI组件都继承了view类。view重要子类有ViewGroup。所有UI组件都可以使用view的属性和方法。PS:ViewGroup是一个抽象类,常用其子类作为容器。ViewGroup容器控制子控件分布依赖于ViewGroup.LayoutParams和ViewGroup.MarginLayoutParams。

综合结论:android中在res/layout下定义xml文件后R.java会自动收录,Java代码可通过setContentView(R.layout.filename);访问,UI的id由findViewById(R.id.sourceid);访问,以便接下来对于UI控件的使用控制等操作。

只知道心痛得滴血,都只为你。

纯Java方式和Java与xml结合方式开发Android UI界面对比简例

相关文章:

你感兴趣的文章:

标签云: