.net开发安卓入门 - Hello world!

news2024/11/19 19:40:58

.net开发安卓入门 - Hello world!

  • 前言
  • 新建项目
  • 启动调试
    • 调试效果
  • 添加Hello World
      • 效果
  • 安卓样式常见属性介绍
    • 第一类:属性值为true或false
    • 第二类:属性值必须为id的引用名
    • 第三类:属性值为具体的像素值,如30dip,40px
    • 第四类:布局
    • 第五类:我ZTMD重复一遍吧


前言

PS:如果想要使用Xamarin.Forms进行安卓开发,只要会WPF就可以,也不用往下看了,下面都是介绍Xamarin.Android的内容。

上文已经介绍了如何安装环境https://blog.csdn.net/iml6yu/article/details/128236302.
接下来我们创建第一个安卓程序 Hello World

新建项目

在这里插入图片描述
在这里插入图片描述

选择已经安装的安卓镜像版本
在这里插入图片描述

启动调试

注意这里选择对应的模拟器,
如果有真机可以连接真机,adbServer能够发现真机,可以进行连接真机测试
在这里插入图片描述

调试效果

在这里插入图片描述

添加Hello World

打开activity_main.xml文件,位置如下图。修改内容如下图2
在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
  <TextView
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="Hello World!"/>

</RelativeLayout>

效果

在这里插入图片描述

安卓样式常见属性介绍

第一类:属性值为true或false

  • android:layout_centerHrizontal 水平居中
  • android:layout_centerVertical 垂直居中
  • android:layout_centerInparent 相对于父元素完全居中
  • android:layout_alignParentBottom 贴紧父元素的下边缘
  • android:layout_alignParentLeft 贴紧父元素的左边缘
  • android:layout_alignParentRight 贴紧父元素的右边缘
  • android:layout_alignParentTop 贴紧父元素的上边缘
  • android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物

第二类:属性值必须为id的引用名

  • android:layout_below 在某元素的下方
  • android:layout_above 在某元素的的上方
  • android:layout_toLeftOf 在某元素的左边
  • android:layout_toRightOf 在某元素的右边
  • android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
  • android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
  • android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
  • android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐

第三类:属性值为具体的像素值,如30dip,40px

  • android:layout_marginBottom 离某元素底边缘的距离
  • android:layout_marginLeft 离某元素左边缘的距离
  • android:layout_marginRight 离某元素右边缘的距离
  • android:layout_marginTop 离某元素上边缘的距离

EditText的android:hint 设置EditText为空时输入框内的提示信息。

第四类:布局

  • android:gravity
  • android:gravity属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.以button为例,android:gravity="right"则button上面的文字靠右
  • android:layout_gravity
    android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置.以button为例,android:layout_gravity="right"则button靠右
  • android:scaleType:
  • android:scaleType是控制图片如何resized/moved来匹对ImageView的size。ImageView.ScaleType / android:scaleType值的意义区别:
    • CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
    • CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
    • CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
    • FIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示
    • FIT_END / fitEnd 把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置
    • FIT_START / fitStart 把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
    • FIT_XY / fitXY 把图片不按比例扩大/缩小到View的大小显示
    • MATRIX / matrix 用矩阵来绘制,动态缩小放大图片来显示。
      ** 要注意一点,Drawable文件夹里面的图片命名是不能大写的。

第五类:我ZTMD重复一遍吧

  • android:id
    为控件指定相应的ID
  • android:text
    指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串
  • android:gravity
    指定View组件的对齐方式,比如说居中,居右等位置 这里指的是控件中的文本位置并不是控件本身
  • android:layout_gravity
    指定Container组件的对齐方式.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置.以button为例,android:layout_gravity="right"则button靠右
  • android:textSize
    指定控件当中字体的大小
  • android:background
    指定该控件所使用的背景色,RGB命名法
  • android:width
    指定控件的宽度
  • android:height
    指定控件的高度
  • android:layout_width
    指定Container组件的宽度
  • android:layout_height
    指定Container组件的高度
  • android:layout_weight
    View中很重要的属性,按比例划分空间
  • android:padding*
    指定控件的内边距,也就是说控件当中的内容
  • android:sigleLine
    如果设置为真的话,则控件的内容在同一行中进行显示
  • android:scaleType
    是控制图片如何resized/moved来匹对ImageView的siz
  • android:layout_centerHrizontal
    水平居中
  • android:layout_centerVertical
    垂直居中
  • android:layout_centerInparent
    相对于父元素完全居中
  • android:layout_alignParentBottom
    贴紧父元素的下边缘
  • android:layout_alignParentLeft
    贴紧父元素的左边缘
  • android:layout_alignParentRight
    贴紧父元素的右边缘
  • android:layout_alignParentTop
    贴紧父元素的上边缘
  • android:layout_alignWithParentIfMissing
    如果对应的兄弟元素找不到的话就以父元素做参照物
  • android:layout_below
    在某元素的下方
  • android:layout_above
    在某元素的的上方
  • android:layout_toLeftOf
    在某元素的左边
  • android:layout_toRightOf
    在某元素的右边
  • android:layout_alignTop
    本元素的上边缘和某元素的的上边缘对齐
  • android:layout_alignLeft
    本元素的左边缘和某元素的的左边缘对齐
  • android:layout_alignBottom
    本元素的下边缘和某元素的的下边缘对齐
  • android:layout_alignRight
    本元素的右边缘和某元素的的右边缘对齐
  • android:layout_marginBottom
    离某元素底边缘的距离
  • android:layout_marginLeft
    离某元素左边缘的距离
  • android:layout_marginRight
    离某元素右边缘的距离
  • android:layout_marginTop
    离某元素上边缘的距离
  • android:paddingLeft
    本元素内容离本元素右边缘的距离
  • android:paddingRight
    本元素内容离本元素上边缘的距离
  • android:hint
    设置EditText为空时输入框内的提示信息
  • android:LinearLayout
    它确定了LinearLayout的方向,其值可以为vertical, 表示垂直布局horizontal,表示水平布局

- android:interpolator
可能有很多人不理解它的用法,文档里说的也不太清楚,其实很简单,看下面:interpolator定义一个动画的变化率(the rate of change)。
这使得基本的动画效果(alpha, scale, translate, rotate)得以加速,减速,重复等。用通俗的一点的话理解就是:动画的进度使用 Interpolator 控制。
interpolator 定义了动画的变化速度,可以实现匀速、正加速、负加速、无规则变加速等。
Interpolator 是基类,封装了所有 Interpolator 的共同方法,它只有一个方法,即 getInterpolation (float input),该方法 maps a point on the timeline to a multiplier to be applied to the transformations of an animation。

Android 提供了几个 Interpolator 子类,实现了不同的速度曲线,如下:

  • AccelerateDecelerateInte rpolator 在动画开始与介绍的地方速率改变比较慢,在中间的时侯加速
  • AccelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始加速
  • CycleInterpolator 动画循环播放特定的次数,速率改变沿着正弦曲线
  • DecelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始减速
  • LinearInterpolator 在动画的以均匀的速率改变
    对于 LinearInterpolator ,变化率是个常数,即 f (x) = x.
    public float getInterpolation(float input) {
    return input;
    }
    **

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/72176.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python如何解析json数据

json 库可以自字符串或文件中解析JSON。 该库解析JSON后将其转为Python字典或者列表。它也可以转换Python字典或列表为JSON字符串。 解析JSON 创建下面包含JSON数据的字符串 json_string ‘{“first_name”: “Guido”, “last_name”:“Rossum”}’ 它可以被这样解析&#…

官方!杭州市第三批重点建设人工智能应用场景发布,创邻科技Galaxybase入选

近日&#xff0c;杭州市经济和信息化局公开发布《2022年杭州市第三批重点建设的人工智能应用场景清单》&#xff0c;对智慧城市、智慧交通、智慧教育、智慧金融等9个细分领域的申报项目进行遴选&#xff0c;最后以浙江大学、杭州城市大脑、顺丰速运为代表的46个人工智能场景脱颖…

net项目使用花生壳,Cpolar进行内网穿透

使用花生壳或Cpolar进行内网穿透一、注册授权一个花生壳账号二、添加花生壳配置三、修改项目配置信息四、以管理员身份打开vs五、Cpolar内网穿透一、注册授权一个花生壳账号 二、添加花生壳配置 打开花生壳客户端&#xff0c;找到内网穿透&#xff0c;找到添加符号&#xff0…

浅析linux 系统进程冻结(freezing of task)

1 概述 进程冻结是当系统hibernate或者suspend时&#xff0c;对进程进行暂停挂起的一种机制&#xff0c;后面主要以hibernate为例进行介绍。那么为什么要在hibernate或者suspend时需要把进程冻结呢&#xff1f;主要是出于如下的原因&#xff1a; 防止文件系统被修改后无法恢复…

springboot集成security(认证)

目录1. 依赖2. 自定义登录逻辑1. 数据库查询2. security认证1. loadUserByUsername2. PasswordEncorder&#xff08;不加密&#xff09;3. MD5加密数据库密码4. PasswordEncorder&#xff08;加密&#xff09;5. BCryptPasswordEncoder6. 认证流程&#xff08;图&#xff09;3.…

【POJ No. 3764】 最长xor 路径 The xor-longest Path

【POJ No. 3764】 最长xor 路径 The xor-longest Path 北大OJ 题目地址 【题意】 在边权树中&#xff0c;路径p的xor长度被定义为路径p上边权的 &#xff0c;⊕是xor运算符&#xff0c;表示异或。若一个路径有最大的xor长度&#xff0c;则该路径是xor最长的路径。给定n 个节点…

如何正确使用Airtest报告插件?报告小tips上线

1. 前言 在使用Airtest做自动化测试时&#xff0c;默认生成的报告&#xff0c;其实是airtest的专属报告。 它对于poco语句&#xff08;控件测试场景&#xff09;、airtest-selenium语句&#xff08;web测试场景&#xff09;的支持不够完善&#xff0c;因此我们需要用 插件的形…

Shell脚本学习指南(六)——输入/输出、文件与命令执行

文章目录前言标准输入、标准输出与标准错误输出使用read读取行关于重定向额外的重定向运算符文件描述符处理printf的完整介绍波浪号展开与通配符波浪号展开使用通配符命令替换为head命令使用sed创建邮件列表简易数学&#xff1a;expr引用执行顺序与evaleval语句subShell与代码块…

CAS:210236-90-1,Fluorescein Tyramide,荧光素酪胺绿色荧光试剂

一&#xff1a;产品描述 1、名称 英文&#xff1a;Fluorescein Tyramide 中文&#xff1a;荧光素酪胺 2、CAS编号&#xff1a;210236-90-1 3、分子式&#xff1a;C29H21NO7 4、分子量&#xff1a;495.49 6、储存&#xff1a; -20℃可长期保存&#xff0c;注意避光并置于…

个人微信号API接口,微信机器人

自定义的微信机器人&#xff0c;需求是可以自己批量添加好友、批量打标签等进行好友管理&#xff0c;社群管理需要自动聊天&#xff0c;自动回复&#xff0c;发朋友圈&#xff0c;转发语音&#xff0c;以及定时群发等&#xff0c;还可以提取聊天内容&#xff0c;进行数据汇总&a…

美妆商场系统/在线购物系统/美妆销售系统

摘 要 本毕业设计的内容是设计并且实现一个基于JSP技术的美妆商场系统。它是在Windows下&#xff0c;以MYSQL为数据库开发平台&#xff0c;Tomcat网络信息服务作为应用服务器。美妆商场系统的功能已基本实现&#xff0c;主要包括个人中心、用户管理、商品中心管理、商品类型管…

故障分析 | MySQL 使用 load data 导入数据错误的一个场景

作者&#xff1a;刘晨 网名 bisal &#xff0c;具有十年以上的应用运维工作经验&#xff0c;目前主要从事数据库应用研发能力提升和技术管理相关的工作&#xff0c;Oracle ACE &#xff0c;腾讯云TVP&#xff0c;拥有 Oracle OCM & OCP 、EXIN DevOps Master 、SCJP 等国际…

HashSet、HashMap、LinkedHashMap、HashTable、ConcurrentHashMap源码阅读笔记

目录一、HashSet二、HashMap三、LinkedHashMap四、HashTable五、ConcurrentHashMap一、HashSet 首先&#xff0c;让我们先从最简单的开始&#xff0c;总的来说&#xff0c;hashSet可以说是建立在hashMap上的变种应用。 通过阅读hashSet的源码我们可以得出以下结论&#xff1a;…

1556_AURIX_TC275_复位系统控制单元

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 这是上一部分没有看完的CCU的核心寄存器的存储映射信息&#xff0c;只是一个汇总&#xff0c;没有需要着重处理的分析点。 复位控制单元涉及到的几个大功能&#xff1a;基本复位、外部复位…

订单服务-----遇到的问题及解决方案

订单服务的问题及解决方案 问题1&#xff1a;Feign远程调用时丢失请求头 出现这个Feign远程调用时丢失请求头的问题是因为Feign在远程调用的时候会创建一个新的请求&#xff0c;但是这个新的请求里啥都没有&#xff0c;没有cookie值&#xff0c;而这个cookie值里有成功登录后的…

投稿MDPI旗下期刊的一些心得和记录

投稿历程&#xff1a; 09.02 提交初稿 under review 09.05 分配助理编辑&#xff0c;论文送审 10.13 第一轮审稿完毕&#xff0c;大修&#xff0c;两个审稿人 Pending Major Revisions 10.16 语言问题需要润色&#xff0c;使用MDPI润色机构 10.19 重新提交修改稿 Resubmitt…

【Axure教程】中继器版穿梭表格

表格是我们系统中常用的组件&#xff0c;穿梭表格就是使用直观方式在两个表格中移动数据&#xff0c;实现数据的流动。今天作者就教大家如何在Axure里用中继器制作出表格穿梭的效果&#xff1a; 1、选中效果&#xff1a;鼠标点击表格中所在的行&#xff0c;可以选中该行数据 …

【Vue 快速入门系列】组件的基本使用

文章目录一、组件的概念二、非单文件组件三、单文件组件1.main.js2.App.vue3.school.vue4.student.vue5.index.html四、内容补充及原理剖析1.组件命名注意点2.组件嵌套内置关系3.重要的内置关系一、组件的概念 组件&#xff08;Component&#xff09;是 Vue.js 最强大的功能之…

Java日期与时间

时间与日期DateSimpleDateFormatCalendarJDK8新增日期类概述LocalDate、LocalTime、LocalDateTimeInstant时间戳DateTimeFormatterDuration/PeriodChronoUnitDate Date类概述 Date类的对象在Java中代表的是当前所在系统的此刻日期时间。 Date的构造器 Date的常用方法 Date类…

2022最新 MySQL事务面试题合集

小熊学Java网站&#xff1a;https://javaxiaobear.gitee.io/&#xff0c;每周持续更新干货&#xff0c;建议收藏&#xff01; 61、什么是数据库事务&#xff1f;事务的特性是什么&#xff1f; 事务&#xff1a; 是数据库操作的最小工作单元&#xff0c;是作为单个逻辑工作单元执…