IT门户, 中国互联网人工智能物联网行业资讯平台--公众IT
新闻来源:互联网资料整理       发布时间:2023/4/6 8:01:20       共计:4615 浏览

在android开发中,怎样动态生成多界面?

效果:layout界面布局: view plaincopyprint?<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:ad="http://schemas.android.com/apk/res/android"ad:layout_width="match_parent"ad:layout_height="match_parent"ad:orientation="vertical" ><LinearLayoutad:layout_width="match_parent"ad:layout_height="30dp"ad:background="@drawable/titlebar_bg"ad:orientation="horizontal" ><ImageViewad:layout_width="wrap_content"ad:layout_height="wrap_content"ad:src="@drawable/back_44_44" /><LinearLayoutad:layout_width="match_parent"ad:layout_height="30dp"ad:gravity="center" ><TextViewad:layout_width="wrap_content"ad:layout_height="wrap_content"ad:text="课程列表"ad:textSize="20sp" /></LinearLayout></LinearLayout><ScrollViewad:id="@+id/ScrollView"ad:layout_width="fill_parent"ad:layout_height="wrap_content"ad:scrollbars="vertical" ><LinearLayoutad:id="@+id/mainLayout"ad:layout_width="match_parent"ad:layout_height="wrap_content"ad:orientation="vertical" ></LinearLayout></ScrollView></LinearLayout>httputil辅助类:

view plaincopyprint?package com.tudou.activity.work4;import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import android.util.Log;public class HttpUtil {/*** 获取到流,自己处理数据* @param path* @return*/public static InputStream getInputStream(String path) {HttpURLConnection conn = null;try {URL url = new URL(path);conn = (HttpURLConnection) url.openConnection();conn.setDoInput(true);// 设置是否向httpUrlConnection输出,post请求,参数要放在http正文内conn.setDoOutput(true);conn.setReadTimeout(3000);conn.setConnectTimeout(3000);conn.setUseCaches(false);conn.setRequestMethod("POST");if (conn.getResponseCode() == 200) {Log.d("mylog", "getResponseCode:" + 200);return conn.getInputStream();}} catch (IOException e) {e.printStackTrace();} finally {if (conn != null) {conn.disconnect();}}return null;}/*** 直接返回响应体正文* @param path* @return*/public static String getResponseBody(String path,String params) {HttpURLConnection conn = null;StringBuffer result=new StringBuffer()

;try {URL url = new URL(path);conn = (HttpURLConnection) url.openConnection();conn.setDoInput(true);// 设置是否向httpUrlConnection输出,post请求,参数要放在http正文内conn.setDoOutput(true);conn.setReadTimeout(3000);conn.setConnectTimeout(3000);conn.setUseCaches(false);conn.setRequestMethod("POST");//数据输出流,该语句隐含的执行connect动作if(params!=null){DataOutputStream out = new DataOutputStream( conn.getOutputStream());//将参数写入流,刷新提交关闭流out.writeBytes(params);out.flush();out.close();}//读取连接返回的数据BufferedReader reader = new BufferedReader(new InputStreamReader( conn.getInputStream()));String inputLine = null;while (((inputLine = reader.readLine()) != null)) {result.append(inputLine);//"n";}//关闭reader.close();if (conn.getResponseCode() == 200) {Log.d("mylog", "getResponseCode:" + 200);}} catch (IOException e) {e.printStackTrace();} finally {if (conn != null) {conn.disconnect();}}return result.toString();}}主activity: view plaincopyprint?package com.tudou.activity.work4;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import com.tudou.activity.R;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.util.Log;import android.util.TypedValue;import android.view.Gravity;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.LinearLayout.LayoutParams;import android.widget.ProgressBar;import android.widget.TextView;public class HomeWork4 extends Activity {String path = "此处省略,你要请求的地址";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.homework4);LinearLayout mainLayout = (LinearLayout)findViewById(R.id.mainLayout);String result=HttpUtil.getResponseBody(path,null);// Log.d("mylog", "result:" + result);try{JSONObject obj = new JSONObject(result);JSONArray array=obj.getJSONArray("onlineCourses");for (int i = 0; i < array.length(); i++) {JSONObject course= array.getJSONObject(i);// Log.d("mylog", "course:" + course.toString());//添加左边的layoutLinearLayout leftlayout=new LinearLayout(this);//注意包android.widget.LinearLayout.LayoutParams,其它包下面的LayoutParams不起作用LayoutParams params=new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);params.topMargin=10;leftlayout.setLayoutParams(params);leftlayout.setOrientation(LinearLayout.HORIZONTAL);leftlayout.setGravity(Gravity.CENTER_VERTICAL);//添加左边layout的图片ImageView imageView=new ImageView(this);params=new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);imageView.setLayoutParams(params);imageView.setImageResource(R.drawable.image_default_195_130);leftlayout.addView(imageView);//添加右边的layout,分为上下2部分,上面是标题,下面是进度条LinearLayout rightlayout=new LinearLayout(this);LayoutParams rightLayoutParams=new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);rightlayout.setLayoutParams(rightLayoutParams);rightlayout.setOrientation(LinearLayout.VERTICAL);//添加课程标题TextView textView=new TextView(this);params=new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);textView.setLayoutParams(params);textView.setText(course.get("courseName").toString());textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15);//18SP//学分,水平布局,分为左右,左:学分,,右:分值LinearLayout studyLayout=new LinearLayout(this);params=new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);studyLayout.setLayoutParams(params);studyLayout.setOrientation(LinearLayout.HORIZONTAL);//添加学分TextView studyView=new TextView(this);params=new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);studyView.setLayoutParams(params);studyView.setText("学分:");studyView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12);studyView.setTextColor(Color.parseColor("#b6b6b6"));//第2种方法:setTextColor(Color.rgb(255, 255, 255));//添加学分值TextView studyValueView=new TextView(this);params=new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);studyValueView.setLayoutParams(params);studyValueView.setText(course.get("courseCredit").toString());studyValueView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);//进度条,水平布局,分为左中右,左:学习进度,中:进度条,右:%值LinearLayout processLayout=new LinearLayout(this);params=new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);processLayout.setLayoutParams(params);processLayout.setOrientation(LinearLayout.HORIZONTAL);//添加学习进度TextView processtextView=new TextView(this);params=new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);processtextView.setLayoutParams(params);processtextView.setText("学习进度:");processtextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12);processtextView.setTextColor(Color.parseColor("#b6b6b6"));//添加进度条ProgressBar bar=new ProgressBar(this,null,android.R.attr.progressBarStyleHorizontal);//指定进度条样式params=new LayoutParams(150, ViewGroup.LayoutParams.WRAP_CONTENT);bar.setLayoutParams(params);bar.setMax(100);bar.setProgress(10);//添加%值TextView processvaluetextView=new TextView(this);params=new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);processvaluetextView.setLayoutParams(params);processvaluetextView.setText("10%");processvaluetextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12);processvaluetextView.setTextColor(Color.parseColor("#b6b6b6"));//添加标题rightlayout.addView(textView);//添加学分studyLayout.addView(studyView);studyLayout.addView(studyValueView);rightlayout.addView(studyLayout);//添加进度条processLayout.addView(processtextView);processLayout.addView(bar);processLayout.addView(processvaluetextView);rightlayout.addView(processLayout);//添加左右边leftlayout.addView(rightlayout);mainLayout.addView(leftlayout);}}catch(JSONException e){e.printStackTrace(); 

安卓桌面布局设置?

只需在应用程序界面选择要创建快捷方式的程序,点击长按,然后图标就会发生变化。此时界面也会变成主界面,只需找到合适的位置松手,快捷方式就创建完成了。向下拖动到顶部,即可放置到桌面上。  安卓手机与iOS系统不同,分为桌面和主菜单两个部分,桌面可以放置快捷图标和桌面插件,而主菜单则是所有应用的图标。将平常常用的图标放到桌面上,这样一来就可以更加快捷地操作手机了。

Android界面布局中的绝对布局特点?

1,FrameLayout,特点:所有的View都会放在左上角,并且后添加进去的View会覆盖之前放进去的View。 2,LinearLayout,特点:在水平或者垂直方向上依次按照顺序来排列子元素,控件的排列顺序遵循其在布局文件中被写出的先后顺序。 3,RelativeLayout,特点:以某一个子元素为参照物,其余子元素均按照其相对位置来完成布局。 4,TableLayout,特点:每个TableLayout都是由一个或多个TableRow组成的,一个TableRow就代表TableLayout的一行。 5,AbsoluteLayout,表格布局类似Html里面的Table。每一个TableLayout里面有表格行TableRow,TableRow里面可以具体定义每一个元素,设定他的对齐方式 android:gravity="" 。

版权说明:
本网站凡注明“公众IT 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
您可以扫描右侧微信二维码联系我们。
网站首页 关于我们 联系我们 合作联系 会员说明 新闻投稿 隐私协议 网站地图