刚刚接触
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布局文件是构建用户界面(UI)的主要方式,它允许开发者以声明式编程的方式定义UI元素的结构和样式。"Android xml布局文件生成工具"是为了解决手动编写XML布局文件繁琐和耗时的问题而设计的...
在运行时,Android系统会根据XML布局文件创建对应的视图对象,并将它们添加到活动(Activity)或Fragment的视图层次结构中。然而,XML布局无法处理所有复杂的情况,比如动态改变视图的状态、响应用户交互等,这就...
`LayoutInflater`类是Android提供的一个工具,它可以从XML布局文件中创建View对象。下面是使用`LayoutInflater`的基本步骤: 1. 获取LayoutInflater实例:你可以通过`getSystemService()`方法从Activity获取...
首先,我们需要在资源目录下创建一个XML布局文件,例如`activity_main.xml`: ```xml android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> ...
首先,你需要在Activity或Fragment的onCreate()方法中加载XML布局。这可以通过调用setContentView()完成: ```java setContentView(R.layout.activity_main); ``` 然后,通过findViewById()获取到XML布局中的...
本篇文章将深入探讨如何在`Activity`中通过XML来创建和使用菜单。 首先,菜单的定义通常位于项目的`res/menu`目录下,这里会包含一个或多个XML文件,每个文件代表一个菜单资源。例如,在`Android_menu`压缩包中,...
首先,我们要明白Android中的布局是XML文件,它们定义了屏幕上的视图及其排列方式。在"android Activity布局初步(二)- 嵌套布局"这篇博文中,作者可能介绍了如何在一个布局文件中包含另一个布局,从而实现视图的...
在Android中,XML布局文件是用来描述UI元素及其关系的。开发者可能会在`first_layout.xml`中定义各种视图组件,如按钮(Button)、文本视图(TextView)、图像视图(ImageView)等,并通过属性来设置它们的位置、...
因此,当你在设计视图中看到你的activity_main.xml布局没有正确显示时,你应该检查并选择一个与你的应用兼容的Android版本。 具体操作步骤如下: 1. 打开你的Android项目,在Eclipse中找到工具栏上的“Android...
星座查询的页面布局
在Android开发中,"dispatch自画和XML布局双剑合璧"是一个常见的技术主题,它涉及到自定义View的绘制以及XML布局的灵活运用。这里我们将深入探讨这两个关键知识点,同时结合给定的文件目录,我们可以推测这是一个...
通过将`pdfjs.rar`放入assets目录,`PDFViewActivity.java`负责加载和初始化WebView,而`activity_pdfview.xml`定义了用户界面。用户可以通过Intent传递PDF文件路径,Activity则负责在WebView中展示PDF内容。这个...
通过在Activity的onCreate()方法中调用setContentView(),我们可以将XML布局加载到Activity中。 Intent的使用则更为灵活。隐式Intent(T_Implicit)允许我们启动没有明确指定目标的Activity,只需要提供一个行动...
以上所述,就是通过XML布局和Java代码实现Activity水平切换效果的基本流程。你可以根据实际需求,调整`PageTransformer`以实现更丰富的动画效果,或者添加其他功能,如指示器等,以提升用户体验。在...
3. **布局XML文件**:在项目的res/layout目录下,会找到描述Activity UI的XML布局文件。这里通常包含一个TabLayout和一个ViewPager元素,它们通过ID被MainActivity中的Java代码引用。 4. **事件监听**:为了响应...
在Activity的onCreate()方法中,调用setContentView(R.layout.main)将main.xml布局加载到Activity中,使得XML布局文件定义的界面得以在屏幕上显示。R.layout.main引用的是res/layout目录下的main.xml文件。 总结来...
为了实现这些布局,我们需要在XML布局文件中定义它们。例如,以下代码展示了如何创建一个包含线性布局的Activity: ```xml android:layout_width="match_parent" android:layout_height="match_parent" android...
布局通常在`activity_main.xml`这样的XML文件中定义。 其次,**XML解析**在Android中用于描述UI组件的结构和样式。XML文件包含了各种元素,如`<Button>`,这些元素有各自的属性,如`android:text`(显示的文字)、`...
在Android应用开发中,Activity是用户界面的基本单元,它负责展示UI并处理用户交互。本篇文章将深入探讨相对布局(RelativeLayout)在Android中的使用,这是一种常见的布局方式,允许控件根据彼此的位置进行相对定位...
开发者只需要在XML布局文件中定义好皮肤可变部分的ID,然后在框架中通过查找这些ID来替换对应的资源。这样,即使在原有代码基础上,也能轻松实现皮肤切换。 XML配置在这里扮演了关键角色。开发者可以创建一个或多个...