安卓页面开发语言(安卓页面开发)-编程知识网

在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(); 

Android是前端还是后端?

前端!大多数情况下,Android开发就是在安卓操作系统上开发应用app,这些应用本身就是一套界面,而里面的数据都需要从后台或者远程服务上获得,比如在线商城app,里面的商品,评价,订单等信息都不在本机上,所以Android开发本质上还是前端开发

如何从零基础自学android编程?学习安卓将来能做什么?

我来一下。

首先说个人背景,大四学生,专业机械类,学校只教了C语言基础,其他编程知识均为自学。

大二时准备学Android开发,看了一点java基础的语法知识,然后不了了之。

大三因为自己参加的项目,接触C++,用MFC写了个简单的桌面软件。

大四开始找工作,由于之前在机械公司的实习经历,感觉自己不喜欢机械类的工作,也不适合,开始改简历,投一些计算机类的公司,可惜并不是很理想,期间面了一家Android开发的实习生,人家提问,好多不懂,面试完感觉自己好渣。那是去年12月份左右。

面试失败回来后,不再海投简历,觉得与其抱着侥幸的心理去让别人给你一个机会,不如练好技术,给自己更多的选择机会。

12月份到2月初放寒假那段时间,每天白天去另外一家公司实习,回来就背着电脑去图书馆,看书,敲代码,直到图书馆熄灯。每天坚持,周末更是泡在图书馆。啃完郭霖大神的那本《第一行代码》,开始对一些大致的概念有所理解,Android的基础知识也掌握了一些。

看完书前面一大半的时候,我花了几天时间,写了一个拨号软件,Google原生的拨号不带T9拨号,我就自己写了一个,现在看来很简单,界面也很粗糙,不过那时还是成就感满满的。在这个问题如何评价《第一行代码》一书? – Android下可以看到,第一名的匿名答案就是。

后来就是放寒假了,寒假之前开始写一个软件,『在读』,就是记录你阅读纸质书进度的一个软件,由于觉得功能不实用,已经停止开发了。下面是一些简单的截图。

功能很简单,就是记录一本书的阅读进度,高级一点的就是加入调用豆瓣的API,可以根据关键字联网查询一些书的信息,如上图所示,点击进去可以看到书籍的大致信息。

寒假在家写这个软件,并开始看《Java编程思想》,开始系统地理解一些Java的知识。

寒假过得很充实,每天看书,做笔记,有时连着好几天晚上敲代码敲到凌晨2点,可是不觉得累,因为喜欢这种感觉,看着自己写的软件在手机上跑起来,特别开心,这也是我为什么转行做程序猿的原因吧。

凭着这段时间的学习,今年开学初,投了几个Android开发的实习生职位,基本上都获得了面试机会,技术面问的那些问题,自己在写上面这个软件时都多多少少遇到过,所以基本上都没问题,然后陆陆续续拿到一些offer。现在在其中一家公司实习,职位就是Android开发。

最近自己写的一个习惯养成的App上线了,满满的成就感。

虽然功能简单,界面也简洁,但是看着自己写的一行行代码,一点点改进界面,最后得到一个自己满意的结果,还是很开心的。 : )

以上罗嗦了这么多,讲了本人从只有一点编程基础到找到Android开发工作的经历,没有大牛那么厉害,只是一番很平常的经历,希望题主你可以得到一些你想要的经验。

题主的问题:

觉得自己有毅力,有信心的话,同时学习能力比较强,那就自学,不差钱的话就报班吧,找个靠谱的。

第二个问题我已经了。

第三个问题,我觉得起码郭霖的《第一行代码》上那些知识点要掌握的吧。

如果题主自学的话,以下是建议:

推荐书籍,郭霖的《第一行代码》,很好的Android入门书。

Java的话,一开始不推荐《Java编程思想》,没有编程基础的有点难懂,你可以看看网上教程之类的。

多敲代码。书上的例子,不要看着觉得会,就不去敲了,很多时候你自己敲一遍,才发现存在很多问题,试着去解决这些问题,你会学到很多。

在有一定基础上,可以想着写一些个人的项目,思考要添加什么功能,怎么实现,不懂的就Google。

学习网站的话,Android开发的官网不翻墙是打不开的,可以考虑买个vpn或者别的途径,翻墙去看,反正我是习惯了Google,vpn一直挂着。贴一个我自己的书签。安卓开发者必备的42个链接

推荐stormzhang 的Android学习之路博文。Android学习之路,很赞,一些Android初学者资源都很赞,仔细看完这篇,你会学习到很多。

开发工具下载,同样是墙的问题,这里有不需要翻墙的资源。AndroidDevTools 配置中遇到的问题自己多搜索。

最后再说一下,推荐Android Studio,真心好用。 = =

最后最重要的就是,要有兴趣,有坚持的决心,不要轻易放弃,遇到问题多看看文档,多搜搜,不要失去信心,慢慢成长起来,不要急功近利。

加油!