android线程改变布局,Android线程中设置控件的值提示报错的解决方法
本文实例讲述了Android线程中设置控件的值提示报错的解决方法。分享给大家供大家参考,具体如下:
在Android线程中设置控件的值一般会与Handler联合使用,如下:
package com.yarin.android.Examples_04_15;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ImageView;
import android.widget.TextView;
public class Activity01 extends Activity
{
//声明ImageView对象
ImageView imageview;
TextView textview;
//ImageView的alpha值,
int image_alpha = 255;
Handler mHandler = new Handler();
//控件线程
boolean isrung = false;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
isrung = true;
//获得ImageView的对象
imageview = (ImageView) this.findViewById(R.id.ImageView01);
textview = (TextView) this.findViewById(R.id.TextView01);
//设置imageview的图片资源。同样可以再xml布局中像下面这样写
//android:src="@drawable/logo"
imageview.setImageResource(R.drawable.logo);
//设置imageview的Alpha值
imageview.setAlpha(image_alpha);
//开启一个线程来让Alpha值递减
new Thread(new Runnable() {
public void run()
{
while (isrung)
{
try
{
Thread.sleep(200);
//更新Alpha值
updateAlpha();
//如果使用下面注释的代码来直接设置imageview的透明度、textview的值会报错,因为线程中不能对控件进行设置操作,需要使用一个Handler来进行对相关值的设置
// if (image_alpha - 7 >= 0)
// {
// image_alpha -= 7;
// }
// else
// {
// image_alpha = 0;
// isrung = false;
// }
// imageview.setAlpha(image_alpha);
// textview.setText("现在alpha值是:"+Integer.toString(image_alpha));
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
}).start();
//接受消息之后更新imageview视图
mHandler = new Handler() {
@Override
public void handleMessage(Message msg)
{
super.handleMessage(msg);
imageview.setAlpha(image_alpha);
textview.setText("现在alpha值是:"+Integer.toString(image_alpha));
//更新
imageview.invalidate();
}
};
}
public void updateAlpha()
{
if (image_alpha - 7 >= 0)
{
image_alpha -= 7;
}
else
{
image_alpha = 0;
isrung = false;
}
//发送需要更新imageview视图的消息
mHandler.sendMessage(mHandler.obtainMessage());
}
}
希望本文所述对大家Android程序设计有所帮助。
android线程改变布局,Android线程中设置控件的值提示报错的解决方法相关推荐
- java程序单引号报错_JavaScript中的单引号和双引号报错的解决方法
在使用JavaScript显示消息或者传递字符数据的时候,经常会碰到数据中夹杂单引号(')或者双引号("),这种语句往往会造成JavaScript报错.对此一般采用/'或者/"的解 ...
- vc20++中使用scanf等函数8出现报错时解决方法
在使用vc++2010编写C语言代码的过程中,scanf.strcpy.strlen.strcat等C语言提供的被认定为不安全的函数在代码运行的过程中会出现报错,为了保有代码的跨平台性和可移植性,不支 ...
- 怎么在ASP.NET中写HTML,如何:在 ASP.NET 网页中设置控件的 HTML 属性
如何:在 ASP.NET 网页中设置控件的 HTML 属性 10/22/2014 本文内容 更新:2007 年 11 月 这些示例显示如何向页面中的元素添加 HTML 属性.第一个示例演示如何以声明方 ...
- springboot项目中pom文件parent报错的解决方法
springboot项目中pom文件parent报错的解决方法 1:首先配置maven环境 2:修改maven的settings.xml文件 3:用编辑器修改settings文件 4:设置Eclips ...
- js设置控件的隐藏与显示的两种方法
js设置控件的隐藏与显示的两种方法: js设置控件的隐藏与显示,设置控件style的display和visibility属性就可以了. 用JavaScript隐藏控件的方法有两种,分别是通过设置控件的 ...
- vue-cli3 中 sockjs-node/info?t=报错 的解决方法
vue-cli3 中 sockjs-node/info?t=报错 的解决方法 参考文章: (1)vue-cli3 中 sockjs-node/info?t=报错 的解决方法 (2)https://ww ...
- IDEA中实现接口时注解@Override报错的解决方法
IDEA中实现接口时注解@Override报错的解决方法 参考文章: (1)IDEA中实现接口时注解@Override报错的解决方法 (2)https://www.cnblogs.com/liulao ...
- 关于Visual Studio 中“scanf”输入报错的解决方法
有很多初次接触VS的同学会发现,当我们在写完一段代码,代码中用到scanf输入变量时,在调试编译的过程中就会出现错误: warning C4996: 'scanf': "This funct ...
- android动态改变布局,Android 动态添加布局的两种方式
前言 大多数时候我们布局都是用xml来布局的,但有些时候也是会用到动态布局的,尤其是在一些大项目中,动态布局更是体现的淋漓尽致. 所以今天我们就来学习一些动态加添布局的两种方式,分别是 动态添加xml ...
最新文章
- Apache Dubbo 高危漏洞通告
- 03-老马jQuery教程-DOM操作(上)
- Photoshop的基本操作
- vue 组件属性监听_详解vuex 中的 state 在组件中如何监听
- android image 转yuv_Android将camera获取到的YuvData在jni中转化为Mat方法
- linux 超大文件编辑,Linux 修改打开最大文件数
- linux中定义用户账户的文件为,Linux中用户和组中认证库和解析库的文件格式以及默认参数定义文件...
- MATLAB自带机器学习算法汇总
- PPT画图保存时自动压缩图片问题
- 移动直播技术秒开优化经验(含PPT)
- 订阅新闻联播文字标题到邮箱
- C# LINQ TO SQL
- L1-040. 最佳情侣身高差 java
- sql追加列mysql_mysql如何给表中添加列(字段)?
- 面渣逆袭:Redis连环五十二问,图文详解,这下面试稳了
- html 最小长度单位,最小的长度单位是多长?
- 用selenium模拟浏览器登录淘宝识别滑动验证码
- 前端读取时间传入后端时间减少八小时解决方案
- 【产品经理】工作交接
- python在屏幕上输出文字_对python的输出和输出格式详解