/*
里面有自定义Toast的显示位置
*/
//DoorActivity
package temp.com;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
public class DoorActivity extends Activity {
// private LayoutInflater inflater = null;
private ImageView doorImageView;
//当前操作的门
private int thisWindow=1;
private Button okDoorButton;
private Button openDoorButton;
private Button closeDoorButton;
private Toast toast;
private DoorOperationView doorOperationView;
private LinearLayout linearLayoutDoor;
@Override
public void onCreate(Bundle savedInstanceState) {
//inflater = LayoutInflater.from(this);
super.onCreate(savedInstanceState);
//Thread.currentThread().start();
setContentView(R.layout.doorview);
linearLayoutDoor = (LinearLayout) findViewById(R.id.linearLayoutDoor);
// 获取门控件
doorImageView = (ImageView) findViewById(R.id.doorImageView);
//获取当前操作的门
getThisDoor();
// 设置门开始界面
setDoorFace(); // dooropen 打开;doopclose 为关闭
doorOperationView =new DoorOperationView(DoorActivity.this,Values.doorIsOpen[thisWindow]);
openDoorButton = (Button) DoorActivity.this.findViewById(R.id.openDoorButton);
openDoorButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("监听到将要 打开门");
if (!Values.doorIsOpen[thisWindow]) {
// 更新门状态
updateDoorState(true);
linearLayoutDoor.removeAllViews();
linearLayoutDoor.addView(doorOperationView);
}else {
toast = Toast.makeText(getApplicationContext(),"门已经打开了!", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.setDuration(400);
toast.show();
}
}
});
closeDoorButton = (Button) DoorActivity.this.findViewById(R.id.closeDoorButton);
closeDoorButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("监听到将要 关闭门");
if (Values.doorIsOpen[thisWindow]) {
// 更新门状态
updateDoorState(false);
linearLayoutDoor.removeAllViews();
linearLayoutDoor.addView(doorOperationView);
}else {
toast = Toast.makeText(getApplicationContext(),
"门已经关上了!", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.setDuration(400);
toast.show();
}
}
});
/* okDoorButton = (Button) DoorActivity.this.findViewById(R.id.okDoorButton);
okDoorButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("监听到确定按钮");
if (doorOperationView != null) {
finish();
}
}
});*/
}
public void updateDoorState(boolean blean) {
Values.doorIsOpen[thisWindow]=blean;
doorOperationView =new DoorOperationView(DoorActivity.this,Values.doorIsOpen[thisWindow]);
}
//获取当前操作的门
public int getThisDoor(){
thisWindow=Values.thisWindow-1;
System.out.println("This Door is "+thisWindow);
if(Values.doorIsOpen[thisWindow])
System.out.println("门已打开");
else {
System.out.println("门已关闭");
};
return thisWindow;
}
// 设置门开始界面
public void setDoorFace(){
if(Values.doorIsOpen[thisWindow])
doorImageView.setImageResource(R.drawable.dooropen);
else {
doorImageView.setImageResource(R.drawable.doorclose);
}
}
}
//DoorOperationView
package temp.com;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.view.View;
public class DoorOperationView extends View{
Context mContext = null;
Bitmap bitmap=null;
/* 定义一个Drawable对象 */
Drawable mBitDrawable = null;
boolean isOpen=false;
private Paint paintNormal = null;// 小画笔
public DoorOperationView(DoorActivity doorActivity,boolean isOpen)
{
super(doorActivity);
this.isOpen=isOpen;
paintNormal = new Paint();
paintNormal.setAntiAlias(true);
paintNormal.setStyle(Paint.Style.STROKE);
paintNormal.setColor(Color.BLACK);
paintNormal.setStrokeWidth(1);
if(isOpen){//窗户为打开状态 这里是关闭动画
bitmap = ((BitmapDrawable)doorActivity.getResources().getDrawable(R.drawable.dooropen)).getBitmap();
}else if (!isOpen) {//窗户为关闭状态 这里是打开动画
bitmap = ((BitmapDrawable)doorActivity.getResources().getDrawable(R.drawable.doorclose)).getBitmap();
}
}
public void onDraw(Canvas canvas)
{
super.onDraw(canvas);
canvas.drawBitmap(bitmap, 0, 0, paintNormal);
}
}
//Values
package temp.com;
public class Values {
public static int thisWindow=1;//当前操作的控件的ID
//对应七扇门,是否打开 true 表示门是打开的 false 表示门是关闭的
public static boolean doorIsOpen[]={
true, //门1
true, //门2
true, //门3
true, //门4
true, //门5
true, //门6
true, //门7
};
}
//点击打开按钮时
//点击关闭按钮时
//源码下载
http://download.csdn.net/source/3222583
如果没有资源分的或没有CSDN号的可以留邮箱,或发邮件至254443233@qq.com;本人免费放送
分享到:
相关推荐
在Activiey 中更改 并刷新Layout(布局)中的控件(ImageView)的显示 具体说明见 http://blog.csdn.net/love254443233/archive/2011/04/24/6359485.aspx
自定义ImageView(在某个Layout布局中移动、缩放、旋转).rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
在项目中用到了一个如下功能:双击自定义imageview控件,然后控件显示一个红色边框,表示该控件处于可编辑状态,再次双击边框消失,控件不可再被编辑。现把双击和画线部分单独摘出来,希望能帮到别人。
嵌入式Android项目设计与开发 第四章 基本控件编程 ——图像控件ImageView ImageView ImageView是用于在界面上... 在布局中插入一个ImageView 通过布局选择图片或者Java代码加载资源文件 实验 谢谢 请专家批评指正!
图片控件ImageView是最常用的组件之一,继承自android.view.View,它的已知直接子类有:ImageButton, QuickContactBadge ;已知间接子类有:ZoomButton
通过图片的url获取到图片,并显示到imageview中,本实例中选择的图片的百度官网的logo。仅提供一种获取网络图片的方法。
(android控件) ImageView 控件开发效果总结 (多组滤镜效果)源码下载
自定义ImageView控件,具有缩放和拖拽功能,适合图片的浏览,方便复用
ImageView封装GIF控件,并增加一个倒角。想深入了解的可以看这里:https://blog.csdn.net/u012551350/article/details/89068414
使用ImageView显示图片很简单,下面的教程在布局文件中直接通过布局属性将图片布局了,so easy的~~教程见:http://www.ourunix.org/android/post/125.html
ImageView 自定义控件,实现圆角控件图片功能
driveimageview First things first ...The example application is available at the play store: General idea The idea of this android library is to give the possibility to display two texts inside the ...
自定义控件,自定义ImageView点击反馈效果
基于androidStudio开发的App,实现了拍照功能,并能对照片进行剪裁操作,然后回显到imageView控件上。
先来看一张预览图: 废话不多说,直接上代码: android:layout_width=match_parent android:layout_height=match_...ImageView android:layout_width=match_parent android:layout_height=match_parent an
安卓自定义控件左右滑动动态添加ImageView控件 ScrollView
ImageView控件缩放和旋转图片源码演示了如何使用ImageView控件缩放和旋转图片,帮助理解用法,并附带实例,对新手实用,学到一些基础的图像操作技巧,比如按比例缩放图片、旋转图片到指定的角度,在一些Android应用...
当系统scaleType,显示图片方式满足不了我们时,自定义view显示任意图片指定区域
拖动view 每次移动都要设置其layout,不然由于父布局可能嵌套listview,当父布局发生改变冲毁(如下拉刷新时)则移动的view会回到原来的位置
Android调用系统摄像头拍照并显示在ImageView上