简单模拟实现简单的当登录延时的效果

①、先建立一个activaty去部署我们的登陆界面

 1 package com.example.administrator.actionbardemo;
 2 
 3 import android.app.Activity;
 4 import android.content.Intent;
 5 import android.os.Bundle;
 6 import android.view.View;
 7 import android.widget.Button;
 8 import android.widget.EditText;
 9 import android.widget.TextView;
10 import android.widget.Toast;
11 
12 public class MainActivity extends Activity {
13 
14     private Button denglu;  //登录按钮
15     private TextView new_user;  //新用户连接
16 
17     private String user = "111111";  //用户名
18     private String possword = "111111";   //用户密码
19     @Override
20     protected void onCreate(Bundle savedInstanceState) {
21         super.onCreate(savedInstanceState);
22         setContentView(R.layout.activity_main);
23 
24         denglu = (Button) findViewById(R.id.denglu);  //绑定 按钮
25         //登录按钮的监听事件
26         denglu.setOnClickListener(new View.OnClickListener() {
27             @Override
28             public void onClick(View v) {
29                 EditText user_name = (EditText) findViewById(R.id.user_name);  //绑定  用户名  编辑框
30                 EditText pwd = (EditText) findViewById(R.id.pwd);   //绑定 密码  输入框
31                 if(pwd.getText().toString().equals(possword) && user_name.getText().toString().equals(user)){
32                     Intent intent = new Intent(MainActivity.this,CopyProgressBarDemo.class);  //绑定Activaty
33                     startActivity(intent);  //启动Activity
34                     Toast.makeText(getApplicationContext(),"登陆成功",Toast.LENGTH_SHORT).show();
35 //                    finish();   //结束本Activity
36                 }else{
37                     Toast.makeText(getApplicationContext(),"用户名或密码不正确",Toast.LENGTH_SHORT).show();
38                 }
39 
40             }
41         });
42         new_user = (TextView) findViewById(R.id.new_user);  //绑定  新用户  TextView
43         //绑定监听事件
44         new_user.setOnClickListener(new View.OnClickListener() {
45             @Override
46             public void onClick(View v) {
47                 Intent intent = new Intent(MainActivity.this,Zhuce.class);
48                 startActivity(intent);
49             }
50         });
51 
52     }
53 }

这里是MainActivity的布局xml文件

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:background="@drawable/login_backgrond"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/user_name"
        android:layout_width="220dp"
        android:layout_height="40dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="80dp"
        android:singleLine="true"
        android:drawableLeft="@drawable/denglu_per"
        android:background="@drawable/edit_text_shape"
        android:hint="请输入用户帐号"
        />
    <EditText
        android:id="@+id/pwd"
        android:layout_width="220dp"
        android:layout_height="40dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="15dp"
        android:password="true"
        android:singleLine="true"
        android:drawableLeft="@drawable/denglu_lock"
        android:background="@drawable/edit_text_shape"
        android:hint="请输入用户密码"/>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_gravity="center_horizontal">
        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="记住密码"
            android:checked="true"/>
        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="自动登录"
            android:checked="false"/>
        </LinearLayout>
    <Button
        android:id="@+id/denglu"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="20dp"
        android:text="登录"
        android:textSize="24dp"
        android:background="@drawable/button_type"/>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="right|end"
        android:orientation="horizontal">
        <TextView
            android:id="@+id/forget_pwd"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:text="忘记密码"
            android:textColor="#00F9FF"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=" | "
            android:layout_gravity="bottom"/>
        <TextView
            android:id="@+id/new_user"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="新用户"
            android:layout_gravity="bottom"
            android:textColor="#00F9FF"/>
    </LinearLayout>
</LinearLayout>

②、新建一个Activity,在这个Activity中,我加入了一个耗时操作去模拟。

 1 package com.example.administrator.actionbardemo;
 2 
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.os.Handler;
 6 import android.os.Message;
 7 import android.view.Window;
 8 
 9 import java.util.Timer;
10 import java.util.TimerTask;
11 
12 public class CopyProgressBarDemo extends Activity {
13 
14     @Override
15     protected void onCreate(Bundle savedInstanceState) {
16         super.onCreate(savedInstanceState);
17         this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
18         setContentView(R.layout.activity_login_susccess);
19 
20         CopyProgressBarDemo.this.setFinishOnTouchOutside(false); //窗口  activity  点击空白 不取消
21 
22         final Handler myHandler = new Handler(){
23             @Override
24             public void handleMessage(Message msg) {
25                 super.handleMessage(msg);
26                 if (msg.what == 0x111){
27                     finish();
28                 }
29             }
30         };
31 
32         //定义一个计时器,让该计时器周期性的执行指定任务
33         final int[] count = {0};
34         new Timer().schedule(new TimerTask() {
35             @Override
36             public void run() {
37                 count[0]++;
38                 if(count[0] == 10){
39                     myHandler.sendEmptyMessage(0x111);
40                 }
41             }
42         },0,500);
43 
44     }
45 }

布局文件,该文件只包含了一个progressBar和一个TextView

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.example.administrator.actionbardemo.LoginSuscceWss">

    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@android:style/Widget.ProgressBar.Small"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="请等待..."/>


</LinearLayout>

效果图:

转载于:https://www.cnblogs.com/819158327fan/p/4773254.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Matlab 中,您可以使用函数如 imfilter 和 conv2 来对图像进行卷积运算,从而实现不同频率对图像造成的延迟效果。 下面是一段简单的代码示例: ``` % 读入图像 img = imread('image.jpg'); % 定义高通滤波器 hpf = [-1 -1 -1; -1 8 -1; -1 -1 -1]; % 对图像进行卷积 img_hpf = imfilter(img, hpf, 'replicate'); % 叠加图像,得到相频失真的图像 img_distorted = img + img_hpf; % 显示图像 imshow(img_distorted); ``` 在这段代码中,首先读入了一幅图像,然后定义了一个高通滤波器,对图像进行卷积操作。最后,将卷积后的图像和原图像叠加,得到相频失真的图像。 ### 回答2: 要实现模拟图像信号不同频率产生不同的延时,从而造成相频失真,可以使用MATLAB编写一个简单的代码。 首先,我们需要生成一个模拟图像信号。可以使用`imread`函数读取一张图片作为输入信号。 ```matlab image = imread('input_image.jpg'); ``` 接下来,我们需要定义不同频率对应的延时时间。假设我们希望低频信号有较小的延迟,高频信号有较大的延迟,可以使用一个数组来表示不同频率对应的延时时间。例如,我们可以定义一个频率到延时时间的映射: ```matlab frequency_to_delay = [0.1, 0.2, 0.3, 0.4, 0.5]; % 频率到延时时间的映射,以秒为单位 ``` 然后,我们可以通过对信号进行傅里叶变换,得到信号的频域表示。可以使用`fft`函数进行傅里叶变换。 ```matlab signal_fft = fft(image); ``` 接下来,我们根据不同频率的延时时间,对频域表示进行相移操作。我们可以根据频率大小来调整相移的幅度。对于每个频率分量,我们可以使用`exp`函数生成一个复数表示相移的乘法因子,然后将频域表示中对应频率的分量与乘法因子相乘。 ```matlab fs = 30; % 采样率 N = length(image); t = (0:N-1)/fs; for i = 1:length(frequency_to_delay) frequency = i*fs/N; delay_time = frequency_to_delay(i); phase_shift = exp(-1i*2*pi*frequency*delay_time); signal_fft(i) = signal_fft(i) * phase_shift; end ``` 最后,我们需要将相移后的频域表示进行逆傅里叶变换,得到相位失真后的信号。可以使用`ifft`函数进行逆傅里叶变换。 ```matlab signal = ifft(signal_fft); ``` 最后,我们可以将相位失真后的信号保存为图像。 ```matlab imwrite(uint8(real(signal)), 'output_image.jpg'); ``` 这样,我们就完成了对模拟图像信号不同频率产生不同延时从而造成相频失真的MATLAB代码编写。 ### 回答3: 使用MATLAB编写代码,可以实现模拟图像信号不同频率产生不同的延时,从而造成相频失真。 首先,需要导入图像信号,并转化为可处理的数字信号。假设我们导入的图像信号为image。 ```matlab % 导入图像信号并转化为灰度图 image = imread('image.jpg'); image_gray = rgb2gray(image); % 将图像转化为数字信号 signal = double(image_gray(:)'); % 采样率和时间 Fs = 1000; % 采样率为1000Hz,即每秒采集1000个样本点 t = 0:1/Fs:length(signal)/Fs-1/Fs; % 时间为信号长度除以采样率 % 不同频率下的延时 f1 = 10; % 频率为10Hz delay1 = sin(2*pi*f1*t); delayed_signal1 = signal.*delay1; f2 = 20; % 频率为20Hz delay2 = sin(2*pi*f2*t); delayed_signal2 = signal.*delay2; ``` 以上代码中,我们首先导入图像信号,并将其转化为灰度图,然后将图像信号转化为数字信号。接着,我们通过设置不同的频率$f1$和$f2$,生成不同频率的正弦延时信号delay1和delay2,然后将原始信号signal与延时信号delay1和delay2相乘得到不同频率下的延时信号delayed_signal1和delayed_signal2。 通过以上代码,我们就可以对模拟图像信号不同频率产生不同的延时,从而造成相频失真。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值