关于如何记录软件安装的全过程?和如何记录软件安装的全过程视频的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于5.linux软件安装的三种方法、Android实现页面跳转的全过程记录、Flu
关于如何记录软件安装的全过程?和如何记录软件安装的全过程视频的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于5.linux 软件安装的三种方法、Android实现页面跳转的全过程记录、Flutter构建自定义Widgets的全过程记录、Golang软件安装的详细步骤等相关知识的信息别忘了在本站进行查找喔。
本文目录一览:- 如何记录软件安装的全过程?(如何记录软件安装的全过程视频)
- 5.linux 软件安装的三种方法
- Android实现页面跳转的全过程记录
- Flutter构建自定义Widgets的全过程记录
- Golang软件安装的详细步骤
如何记录软件安装的全过程?(如何记录软件安装的全过程视频)
在linux上有些软件在安装的过程中进行一些配置,请问有什么办法能将这个安装过程详细地自动记录在一个文档上呢?5.linux 软件安装的三种方法
Android实现页面跳转的全过程记录
1、启动新Activty
1.1、功能分析
- App功能
- 在第一个Activity输入消息
- 点击第一个Activity的发送按钮
- 发送消息到第二个Activity
- 第二个Activity显示收到的消息
- App结构(2个Activity+2个Layout) :
- 打开App时,启动CreateMessageActivty
加载activity_create_message.xml作为布局 - 用户点击按钮启动ReceiveMessageActivty
加载activity _receive_message.xml作为布局
- 打开App时,启动CreateMessageActivty
1.2、开发视图布局
activity_create_message.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout 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" tools:context=".CreateMessageActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <EditText android:id="@+id/input" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="@string/hint" android:inputType="textPersonName" android:textSize="30sp"/> <Button android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="onSendMessage" android:text="@string/send" android:textSize="30sp" /> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout>
activity _receive_message.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout 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" app:layout_constraintRight_toRightOf="parent" tools:context=".ReceiveMessageActivity"> <TextView android:id="@+id/output" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="2nd Activity" android:textSize="34sp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constr
string.xml
<resources> <string name="app_name">Messager</string> <string name="send">Send Message</string> <string name="hint">Enter a message</string> <string name="choser">Send Message via ...</string> </resources>
1.3、按钮事件响应
CreateMessageActivty类:发送消息
public class CreateMessageActivity extends AppCompatActivity { //定义常量,作为消息的key public static final String MESSAGE_KEY="szst.it.ping.messager"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_create_message); } public void onSendMessage(View Button){ //获得编辑框引用 EditText editText = findViewById(R.id.input); //取出编辑框文字 String message = editText.getText().toString(); //Intent是Android中的信使,新建Intent打开,设置收件Activity为ReceiveMessageActivity Intent intent = new Intent(this,ReceiveMessageActivity.class) ; //在intent中附加消息 intent.putExtra(MESSAGE_KEY,message); //向Android发出请求 startActivity(intent); } }
ReceiveMessageActivty类:接收消息
public class ReceiveMessageActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_receive_message); //获得intent的引用 Intent intent = getIntent(); //根据key取出value String message = intent.getStringExtra(CreateMessageActivity.MESSAGE_KEY); //获得文本框内容,设置文字 TextView textView = findViewById(R.id.output); textView.setText(message); } }
1.4、测试结果
启动界面
输入消息“123”并点击按钮发送,接收界面如下
2、启动其他App
2.1、功能分析
- App功能
- 在第一个Activity输入消息
- 点击第一个Activity的发送按钮
- 发送消息到其他App
- 其他App显示收到的消息
- App结构(1个Activity+1个Layout) :
- 打开App时,启动CreateMessageActivty
加载activity_create_message.xml作为布局 - 用户点击按钮启动选择启动满足条件的App
- 打开App时,启动CreateMessageActivty
2.2、开发视图布局
- activity_create_message.xml
- 同1.2中的activity_create_message.xml
2.3、按钮事件响应
CreateMessageActivty类:发送消息
public class CreateMessageActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_create_message); } public void onSendMessage(View Button){ //获得编辑框引用 EditText editText = findViewById(R.id.input); //取出编辑框文字 String message = editText.getText().toString(); //使用new Intent(Intent.ACTION_SEND)替换new Intent(this, ReceiveMessageActivity.class),不知道其它App中的类名 Intent intent = new Intent(Intent.ACTION_SEND); //设置消息类型为纯文本,系统不会对消息进行处理 intent.setType("text/plain"); //向Intent添加附加信息 intent.putExtra(Intent.EXTRA_TEXT,message); //自定义选择对话框 String chooserTitle = getString(R.string.choser); Intent chosenIntent = Intent.createChooser(intent, chooserTitle); startActivity(chosenIntent) ; } }
2.4、测试结果
启动界面同1.4
输入消息“123”并点击按钮发送,选择要发送的app(Messaging)
发送附加消息到111
发送成功
总结
到此这篇关于Android实现页面跳的文章就介绍到这了,更多相关Android实现页面跳转内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
- Android Studio实现注册页面跳转登录页面的创建
- Android使用Intent显示实现页面跳转
- Android使用Intent隐式实现页面跳转
- Android Intent实现页面跳转的两种方法
- Android Intent实现页面跳转的方法示例
- Android 实现页面跳转
- Android使用Circular Reveal动画让页面跳转更炫酷
- Android编程中Intent实现页面跳转功能详解
- Android Activity中使用Intent实现页面跳转与参数传递的方法
- Android实现页面跳转
Flutter构建自定义Widgets的全过程记录
一.组合widget实现
1.android和flutter自定义控件对比
Android中,一般会继承View或已经存在的某个控件,然后覆盖draw方法来实现自定义View。在Flutter中,一个自定义widget通常是通过组合其它widget来实现的,而不是继承。下面看看如何构建持有一个label的CustomButton。这是通过将Text与RaisedButton组合来实现的,而不是继承RaisedButton并重写其绘制方法实现,eg :custombuttontest.dart
import ''package:flutter/material.dart''; class CustomButtonTest extends StatelessWidget{ final String textStr; CustomButtonTest(this.textStr); @override Widget build(BuildContext context) { return RaisedButton( onPressed: (){}, child: Text( textStr, textAlign: TextAlign.center, ) ); } }
上面定义好组件之后,可直接在调用build的方法中现实,eg :
@override Widget build(BuildContext context) { return new Center( child: new CustomButton("Custom Button"), ); } }
二.通过自定义CustomPainter实现widgets
1.CustomPainter主要属性介绍,和Android开发中的自定义View类似,Flutter中的绘制也是依靠Canvas和Paint来实现的
1).Canvas //画布,为开发者提供了点、线、矩形、圆形、嵌套矩形等绘制方法。
2).Paint //画笔,可以设置抗锯齿,画笔颜色,粗细,填充模式等属性,绘制时可以定义多个画笔以满足不同的绘制需求。eg:
Paint _paint = new Paint() ..color = Colors.red // 画笔颜色 ..strokeCap = StrokeCap.round //画笔笔触类型,包括(1.round-画笔笔触呈半圆形轮廓开始和结束;2.butt-笔触开始和结束边缘平坦,没有外延;3.square-笔触开始和结束边缘平坦,向外延伸长度为画笔宽度的一半) ..isAntiAlias = true //是否启动抗锯齿 ..style=PaintingStyle.fill //绘画风格,默认为填充,有fill和stroke两种 ..blendMode=BlendMode.exclusion //颜色混合模式 ..colorFilter=ColorFilter.mode(Colors.blueAccent, BlendMode.exclusion)//颜色渲染模式 ..maskFilter=MaskFilter.blur(BlurStyle.inner, 3.0)//模糊遮罩效果 ..filterQuality=FilterQuality.high//颜色渲染模式的质量 ..strokeWidth = 15.0;//画笔的宽度复制代码
3).Offset //坐标,可以用来表示某个点在画布中的坐标位置。
4).Rect //矩形,在图形的绘制中,一般都是分区域绘制的,这个区域一般都是一个矩形,在绘制中通常使用Rect来存储绘制的位置信息。
5).坐标系 //在Flutter中,坐标系原点(0,0)位于左上角,X轴向右变大,Y轴向下变大。
2.painting.dart中的主要方法,eg:
void drawRect(Rect rect, Paint paint) {...} //画矩形 void drawLine(Offset p1, Offset p2, Paint paint) {...} //画线 void drawPoints(PointMode pointMode, List<Offset> points, Paint paint) {...} //画点 void drawCircle(Offset c, double radius, Paint paint) {...} //画圆 void drawArc(Rect rect, double startAngle, double sweepAngle, bool useCenter, Paint paint) {...} //画圆弧
三.饼状图piechart.dart代码展示
import ''dart:math''; import ''package:flutter/material.dart''; class PieChartTest extends StatelessWidget{ const PieChartTest({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text(''pie chart''), ), body:Container( alignment: Alignment.center, child: CustomPaint( size: const Size(300, 300), painter: PieChartPainter(), ), ) ); } } class PieChartPainter extends CustomPainter{ Paint getColoredPaint(Color color){ Paint paint=Paint(); paint.color=color; return paint; } @override void paint(Canvas canvas, Size size) { double wheelSize=min(size.width, size.height)/2; double nbElem=8; double radius=(2*pi)/nbElem; Rect boundingRect=Rect.fromCircle(center: Offset(wheelSize,wheelSize), radius: wheelSize); canvas.drawArc(boundingRect, 0, radius, true, getColoredPaint(Colors.orange)); canvas.drawArc(boundingRect, radius, radius, true, getColoredPaint(Colors.black)); canvas.drawArc(boundingRect, radius*2, radius, true, getColoredPaint(Colors.green)); canvas.drawArc(boundingRect, radius*3, radius, true, getColoredPaint(Colors.red)); canvas.drawArc(boundingRect, radius*4, radius, true, getColoredPaint(Colors.blue)); canvas.drawArc(boundingRect, radius*5, radius, true, getColoredPaint(Colors.yellow)); canvas.drawArc(boundingRect, radius*6, radius, true, getColoredPaint(Colors.purple)); canvas.drawArc(boundingRect, radius*7, radius, true, getColoredPaint(Colors.white)); } @override bool shouldRepaint(covariant CustomPainter oldDelegate)=>oldDelegate!=this; }
四.实际效果图,eg:
附:Flutter中父widget调用子widget的方法
一、定义globalKey,注意<>中的是State类。
final _childWidgetKey = GlobalKey();
二、在父页面初始化子widget
ChildPage(key:_receiveKey),
三、
class ChildPage extends StatefulWidget {undefined ChildPage({Key key}) : super(key: key); @override ChildPageState createState() => ChildPageState(); }
四、在父界面调用子widget中的方法
_childWidgetKey.currentState.onRefresh();
总结
到此这篇关于Flutter构建自定义Widgets的文章就介绍到这了,更多相关Flutter构建自定义Widgets内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
- Flutter Widgets粘合剂CustomScrollView NestedScrollView滚动控件
- Flutter Widgets之标签类控件Chip详解
- Flutter开发Widgets 之 PageView使用示例
- Flutter Widgets MediaQuery控件屏幕信息适配
Golang软件安装的详细步骤
golang是google开发的一款编程语言,它融合了静态语言和脚本语言的优点,在性能和开发效率上有很大的优势,成为近年来最热门的编程语言之一。如果你想要使用这个语言进行编程,首先就要掌握它的安装方法。在本篇文章中,我们将为您提供golang软件安装的详细步骤。
第一步:下载Golang安装包
首先,您需要在官方网站golang.org上下载Golang软件的安装包。根据您的系统类型,选择相应的版本进行下载。目前,Golang支持多种操作系统,如Windows、Linux、Mac OS等。如果您需要使用Golang进行交叉编译,还可以选择根据不同的体系结构下载不同的安装包。下载完成后,您需要解压缩文件,并将其放在您想要安装的目录下。
第二步:配置环境变量
安装完Golang软件之后,您需要配置环境变量,以便在命令行中可以直接调用Golang命令。在Linux系统下,可以在.bashrc文件中添加以下内容:
立即学习“go语言免费学习笔记(深入)”;
export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
这里,GOPATH是您的工作目录,您可以选择自己所需的目录。在Windows系统下,您可以通过以下步骤配置Golang环境变量:
- 打开“控制面板”,并进入“系统和安全”选项
- 选择“系统”,然后点击“高级系统设置”
- 点击“环境变量”按钮
- 在“系统变量”中添加GOROOT和GOPATH变量,变量值为安装目录以及您的工作目录
- 编辑“Path”变量,添加Golang安装目录下的bin目录以及GOPATH下的bin目录
第三步:检查安装
完成环境变量配置之后,您可以运行命令“go version”来检查Golang是否已经成功安装。如果您看到了当前版本号的输出,那么恭喜您,已经成功安装并配置好了Golang软件。
第四步:安装Golang开发工具
除了安装Golang软件以外,您还需要安装一个适合您编程需求的Golang开发工具。这些工具有很多种,包括GoLand、LiteIDE、Visual Studio、Sublime Text等等。这些开发工具可以帮助您更加高效地编写Golang代码,提高开发效率。
总结
安装Golang软件需要经过下载、解压、配置环境变量等多个步骤,但只要您按照以上步骤执行,就能够很快地完成安装过程。同时,您也需了解Golang开发工具的安装和使用,以便更好地使用该语言进行编程。希望这篇文章对大家有所帮助。
以上就是Golang软件安装的详细步骤的详细内容,更多请关注php中文网其它相关文章!
关于如何记录软件安装的全过程?和如何记录软件安装的全过程视频的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于5.linux 软件安装的三种方法、Android实现页面跳转的全过程记录、Flutter构建自定义Widgets的全过程记录、Golang软件安装的详细步骤等相关知识的信息别忘了在本站进行查找喔。
本文标签: