`
纳木那咔
  • 浏览: 13201 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

无xml布局的activity

阅读更多

 

刚刚接触 android 学不久,自己开始研究,知道 activity 总要有一个 xml 的布局文件相对应,但如果没有这个 xml 而用 java 直接在代码中简单实现,也就是说,这个负责布局的 xml 现在我不在写他。而是直接有 java 帮助我们生成,有些朋友会问,有这个必要么,自己单写个 java 类实现不和 xml 布局是同样的功能。但实际上,很多时候我们的界面不是完全不变的,如果一个 view 中出现了大量的变化,那原来的 xml 也就成了鸡肋。而且一旦我们想要将写好的一个 activity 自己封装成 JAR 包,这时多余的 xml 很可能就变成了累赘。为解决这个问题,自己做了一点测试。感觉效果能简单的解决这个问题,所以发出来,大家权当参考。

 

在一个 activity 中在重写的 onCreate 方法里,我们必须将布局文件指定进来 setContentView(R.layout.XXXX ); 现在我们将这个指定的 xml 放弃

import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class IndexActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
				
		newView view = newView.buildView(IndexActivity.this);
		//原来需要指定xml的地方,换成创建相应布局的对象
		setContentView(view);
		
		Resources res = getResources();
		//指定加载的图片
		Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.back_1);
		BitmapDrawable bmp1 = new BitmapDrawable(bmp);
		view.imageView.setImageDrawable(bmp1);
		
		
		

	}
	//这里实验了LinearLayout布局,其他的布局暂时没做尝试,不过基本原理类似
	static class newView extends LinearLayout {

		private ImageView imageView;
		
		public newView(Context c) {
			super(c);
/*
这里只创建了个ImageView 同理,如TextView EditText Button
等等都在这里创建最后只要添加到addView()中即可,补充下,
这里创建的布局规则同xml布局时的规则相同。
*/

			imageView = new ImageView(c);	
/*
可以设定多种参数如大小,高度,颜色等等,
这些方法在android提供的api中很容易找到,这里列出几种常用的
			TextView mTitle = new TextView(c);
				//添加文字
mTitle.setText(title);
//居中
                mTitle.setGravity(Gravity.CENTER);
				//字体颜色
                mTitle.setTextColor(Color.WHITE);
*/
/*

addView实际有多种构造方法,对于位置变化的需求,
需要自己添加这里举例一个常用的
addView(mTitle, new LinearLayout.LayoutParams(
                                LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT,Gravity.CENTER_HORIZONTAL));
*/

			addView(imageView);

/*
对于LinearLayout本身的属性设置,
我们直接利用继承后提供的方法,直接传参数即可
如:setBackgroundResource(imgId);
setPadding(0, 8, 0, 8);等
*/

			
		}

		public static newView buildView(Context c) {
			return new newView(c);
		}

	}
}

 

至此一个没有 xml 布局文件的 activity 就生成出来。写的不足的地方希望大家见谅。如有错误,请大家帮忙提出。纳木在这里谢过各位。

分享到:
评论

相关推荐

    Android xml布局文件生成工具

    在Android应用开发中,XML布局文件是构建用户界面(UI)的主要方式,它允许开发者以声明式编程的方式定义UI元素的结构和样式。"Android xml布局文件生成工具"是为了解决手动编写XML布局文件繁琐和耗时的问题而设计的...

    XML布局和代码混合使用控制视图

    在运行时,Android系统会根据XML布局文件创建对应的视图对象,并将它们添加到活动(Activity)或Fragment的视图层次结构中。然而,XML布局无法处理所有复杂的情况,比如动态改变视图的状态、响应用户交互等,这就...

    Activity中用代码动态加载布局

    `LayoutInflater`类是Android提供的一个工具,它可以从XML布局文件中创建View对象。下面是使用`LayoutInflater`的基本步骤: 1. 获取LayoutInflater实例:你可以通过`getSystemService()`方法从Activity获取...

    Android在java中写布局及在代码中引入xml布局demo

    首先,我们需要在资源目录下创建一个XML布局文件,例如`activity_main.xml`: ```xml android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> ...

    本示例实现利用 XML 布局文件动态创建CheckBox

    首先,你需要在Activity或Fragment的onCreate()方法中加载XML布局。这可以通过调用setContentView()完成: ```java setContentView(R.layout.activity_main); ``` 然后,通过findViewById()获取到XML布局中的...

    在Activity中用xml添加菜单

    本篇文章将深入探讨如何在`Activity`中通过XML来创建和使用菜单。 首先,菜单的定义通常位于项目的`res/menu`目录下,这里会包含一个或多个XML文件,每个文件代表一个菜单资源。例如,在`Android_menu`压缩包中,...

    android Activity布局初步(二)- 嵌套布局

    首先,我们要明白Android中的布局是XML文件,它们定义了屏幕上的视图及其排列方式。在"android Activity布局初步(二)- 嵌套布局"这篇博文中,作者可能介绍了如何在一个布局文件中包含另一个布局,从而实现视图的...

    不使用activity_main.xml的小例子

    在Android中,XML布局文件是用来描述UI元素及其关系的。开发者可能会在`first_layout.xml`中定义各种视图组件,如按钮(Button)、文本视图(TextView)、图像视图(ImageView)等,并通过属性来设置它们的位置、...

    activity_main.xml页面不显示模拟器的解决办法

    因此,当你在设计视图中看到你的activity_main.xml布局没有正确显示时,你应该检查并选择一个与你的应用兼容的Android版本。 具体操作步骤如下: 1. 打开你的Android项目,在Eclipse中找到工具栏上的“Android...

    activity_main.xml

    星座查询的页面布局

    dispatch自画和XML布局双剑合璧

    在Android开发中,"dispatch自画和XML布局双剑合璧"是一个常见的技术主题,它涉及到自定义View的绘制以及XML布局的灵活运用。这里我们将深入探讨这两个关键知识点,同时结合给定的文件目录,我们可以推测这是一个...

    pdf.js和pdf的webview调用activity及xml布局

    通过将`pdfjs.rar`放入assets目录,`PDFViewActivity.java`负责加载和初始化WebView,而`activity_pdfview.xml`定义了用户界面。用户可以通过Intent传递PDF文件路径,Activity则负责在WebView中展示PDF内容。这个...

    布局Activity和intent

    通过在Activity的onCreate()方法中调用setContentView(),我们可以将XML布局加载到Activity中。 Intent的使用则更为灵活。隐式Intent(T_Implicit)允许我们启动没有明确指定目标的Activity,只需要提供一个行动...

    activity通过xml实现水平切换效果

    以上所述,就是通过XML布局和Java代码实现Activity水平切换效果的基本流程。你可以根据实际需求,调整`PageTransformer`以实现更丰富的动画效果,或者添加其他功能,如指示器等,以提升用户体验。在...

    android常见Activity+Fragment标签页布局demo

    3. **布局XML文件**:在项目的res/layout目录下,会找到描述Activity UI的XML布局文件。这里通常包含一个TabLayout和一个ViewPager元素,它们通过ID被MainActivity中的Java代码引用。 4. **事件监听**:为了响应...

    [转载]Android学习笔记(五):Activity和main.xml文件.doc

    在Activity的onCreate()方法中,调用setContentView(R.layout.main)将main.xml布局加载到Activity中,使得XML布局文件定义的界面得以在屏幕上显示。R.layout.main引用的是res/layout目录下的main.xml文件。 总结来...

    android Activity布局初步(一)- 线性、表格布局

    为了实现这些布局,我们需要在XML布局文件中定义它们。例如,以下代码展示了如何创建一个包含线性布局的Activity: ```xml android:layout_width="match_parent" android:layout_height="match_parent" android...

    简易计算器(初学者对android布局、xml解析熟悉)

    布局通常在`activity_main.xml`这样的XML文件中定义。 其次,**XML解析**在Android中用于描述UI组件的结构和样式。XML文件包含了各种元素,如`<Button>`,这些元素有各自的属性,如`android:text`(显示的文字)、`...

    android Activity布局初步(三)- 相对布局

    在Android应用开发中,Activity是用户界面的基本单元,它负责展示UI并处理用户交互。本篇文章将深入探讨相对布局(RelativeLayout)在Android中的使用,这是一种常见的布局方式,允许控件根据彼此的位置进行相对定位...

    安卓一键换肤,不重启activity,无侵入性,只需配置xml

    开发者只需要在XML布局文件中定义好皮肤可变部分的ID,然后在框架中通过查找这些ID来替换对应的资源。这样,即使在原有代码基础上,也能轻松实现皮肤切换。 XML配置在这里扮演了关键角色。开发者可以创建一个或多个...

Global site tag (gtag.js) - Google Analytics