欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Frame動畫+按鍵監(jiān)聽(實現(xiàn)窗戶打開關(guān)閉操作)

系統(tǒng) 2095 0

/*

實現(xiàn)當(dāng)前Activity 窗戶打開關(guān)閉操作

*/

//Activity

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 CurtainActivity extends Activity {

private ImageView windowImageView;
//當(dāng)前操作的窗戶
private int thisWindow=1;
private CurtainOperationView curtainView;
private Button okButton;
private Button openButton;
private Button closeButton;
private Button returnButton;
private Toast toast;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.curtainview);

final LinearLayout linearLayoutCurtain = (LinearLayout) findViewById(R.id.linearLayoutCurtain);

// 獲取窗戶控件
windowImageView = (ImageView) findViewById(R.id.windowImageView);

//獲取當(dāng)前操作的窗戶
getThisWindow();//返回當(dāng)前窗戶的ID 1表示左上、2表示右上、3表示左下、4表示右下

// 設(shè)置窗戶開始界面
setWindowFace(); //curtain15 打開;curtain1 為關(guān)閉

//根據(jù)窗簾的不同狀態(tài) 設(shè)置動畫
setCurtainView(true);


openButton = (Button) findViewById(R.id.openButton);
openButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("監(jiān)聽到將要 打開窗戶");
if (!Values.windowIsOpen[thisWindow]) {
// 更新窗戶狀態(tài)
updateWindowState(true);
setCurtainView(false);// 建立并設(shè)置窗戶動畫顯示方式curtainView
linearLayoutCurtain.removeAllViews();
linearLayoutCurtain.addView(curtainView);
curtainView.show(true);
}else {
toast = Toast.makeText(getApplicationContext(),"窗戶已經(jīng)打開了!", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.setDuration(400);
toast.show();
}
}

});

closeButton = (Button) findViewById(R.id.closeButton);
closeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("監(jiān)聽到將要 關(guān)閉窗戶");
if (Values.windowIsOpen[thisWindow]) {
// 更新窗戶狀態(tài)
updateWindowState(false);
setCurtainView(true);// 建立并設(shè)置窗戶動畫顯示方式curtainView
linearLayoutCurtain.removeAllViews();
linearLayoutCurtain.addView(curtainView);
curtainView.show(true);
}else {
toast = Toast.makeText(getApplicationContext(),
"窗戶已經(jīng)關(guān)上了!", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.setDuration(400);
toast.show();
}
}
});

okButton = (Button) findViewById(R.id.okButton);
okButton.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
System.out.println("監(jiān)聽到確定按鈕");
if (curtainView != null) {
//finish();
}
}

});

returnButton = (Button) findViewById(R.id.returnButton);
returnButton.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
System.out.println("監(jiān)聽返回按鈕");
//finish();
}

});
}

//根據(jù)窗簾的不同狀態(tài) 設(shè)置動畫
//真 為開 假為閉
public void setCurtainView(boolean isOpen) {
curtainView = new CurtainOperationView(this, isOpen);
}

public void updateWindowState(boolean blean) {
Values.windowIsOpen[thisWindow]=blean;
}
//獲取當(dāng)前操作的窗戶
//返回當(dāng)前窗戶的ID 1表示左上、2表示右上、3表示左下、4表示右下
public int getThisWindow(){
thisWindow=Values.thisWindow-1;

System.out.println("This Window is "+thisWindow);
if(Values.windowIsOpen[thisWindow])
System.out.println("窗戶已打開");
else {
System.out.println("窗戶已關(guān)閉");
};
return thisWindow;
}
// 設(shè)置窗戶開始界面
//curtain15 打開;curtain1 為關(guān)閉
public void setWindowFace(){
if(Values.windowIsOpen[thisWindow])
windowImageView.setImageResource(R.drawable.curtain15);
else {
windowImageView.setImageResource(R.drawable.curtain1);
}
}


}

//CurtainOperationView

package temp.com;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.AnimationDrawable;
import android.graphics.drawable.Drawable;
import android.view.View;

public class CurtainOperationView extends View{


/* 定義AnimationDrawable動畫 */
private AnimationDrawable frameAnimation = null;
Context mContext = null;

/* 定義一個Drawable對象 */
Drawable mBitAnimation = null;
//
public CurtainOperationView(Context context,boolean isOpen)
{
super(context);

mContext = context;

/* 實例化AnimationDrawable對象 */
frameAnimation = new AnimationDrawable();

/* 裝載資源 */
//這里用一個循環(huán)了裝載所有名字類似的資源
//如“curtain1.......15.png”的圖片

if(isOpen){//窗戶為打開狀態(tài) 這里是關(guān)閉動畫
for (int i = 15; i >= 1; i--)
{
int id = getResources().getIdentifier("curtain" + i, "drawable", mContext.getPackageName());
mBitAnimation = getResources().getDrawable(id);
/* 為動畫添加一幀 */
//參數(shù)mBitAnimation是該幀的圖片
//參數(shù)300是該幀顯示的時間,按毫秒計算
frameAnimation.addFrame(mBitAnimation, 300);
}
}else if (!isOpen) {//窗戶為關(guān)閉狀態(tài) 這里是打開動畫
for (int i = 1; i <= 15; i++)
{
int id = getResources().getIdentifier("curtain" + i, "drawable", mContext.getPackageName());
mBitAnimation = getResources().getDrawable(id);
/* 為動畫添加一幀 */
//參數(shù)mBitAnimation是該幀的圖片
//參數(shù)500是該幀顯示的時間,按毫秒計算
frameAnimation.addFrame(mBitAnimation, 300);
}
}


/* 設(shè)置播放模式是否循環(huán)false表示循環(huán)而true表示不循環(huán) */
frameAnimation.setOneShot( true );

/* 設(shè)置本類將要顯示這個動畫 */
this.setBackgroundDrawable(frameAnimation);

// frameAnimation.setVisible(true, false);
/* 開始播放動畫 */
frameAnimation.stop();
}

public void onDraw(Canvas canvas)
{
super.onDraw(canvas);

}

public void show(boolean ff)
{
if(ff)
/* 開始播放動畫 */
frameAnimation.start();

}

}

//Values

package temp.com;

public class Values {
public static int thisWindow=1;//當(dāng)前操作的控件的ID

//對應(yīng)九個窗簾,是否打開 true 表示窗簾是打開的 false 表示窗簾是關(guān)閉的
public static boolean windowIsOpen[]={
true, //窗簾1
true, //窗簾2
true, //窗簾3
true, //窗簾4
true, //窗簾5
true, //窗簾6
true, //窗簾7
true, //窗簾8
true //窗簾9
};


}

//curtainview.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@+id/curtain"
android:background="#000000">

<LinearLayout android:id="@+id/linearLayoutCurtain"
android:layout_width="320dip" android:layout_height="320dip">
<ImageView android:id="@+id/windowImageView"
android:layout_width="320dip"
android:layout_height="320dip" />
</LinearLayout>

<RelativeLayout android:id="@+id/linearLayoutCurtainTheSecond"

android:layout_width="wrap_content" android:layout_height="wrap_content">

<Button android:id="@+id/openButton" android:layout_width="80dip"
android:layout_height="wrap_content" android:text="打開窗戶"

android:layout_alignTop="@id/linearLayoutCurtainTheSecond"
android:layout_alignLeft="@id/linearLayoutCurtainTheSecond" />

<Button android:id="@+id/closeButton" android:layout_width="80dip"
android:layout_height="wrap_content" android:text="關(guān)閉窗戶"

android:layout_toRightOf="@id/openButton" android:layout_alignTop="@id/linearLayoutCurtainTheSecond" />

<Button android:id="@+id/okButton" android:layout_width="80dip"
android:layout_height="wrap_content" android:text="確定"

android:layout_toRightOf="@id/closeButton" android:layout_alignTop="@id/linearLayoutCurtainTheSecond" />

<Button android:id="@+id/returnButton" android:layout_width="80dip"
android:layout_height="wrap_content" android:text="返回"

android:layout_toRightOf="@id/okButton" android:layout_alignTop="@id/linearLayoutCurtainTheSecond" />
</RelativeLayout>
</LinearLayout>

<!--
android:layout_above 將該 控件放在給定ID之上 android:layout_below 之下
android:layout_toLeftOf 本身的右邊緣與另外的左邊對齊 android:layout_toRightOf 左邊 右邊

android:layout_alignBaseline baseline對齊 android:layout_alignBotton
底部與底部對齊 android:layout_alignLeft 左邊與左邊對齊 android:layout_alignRight
右邊與右邊對齊 android:layout_alignTop 頂部與頂部對齊

android:layout_alignParentBottom 為真時,底部與父控件的底部對齊
android:layout_alignParentLeft android:layout_alignParentRight
android:layout_alignParentTop android:layout_centerHorizontal
為真時,被置于水平方向中央 android:layout_centerInParent
android:layout_centerVertical 為真時,被置于垂直方向中央
-->

窗戶打開時
Frame動畫+按鍵監(jiān)聽(實現(xiàn)窗戶打開關(guān)閉操作)

窗戶正在關(guān)閉中

Frame動畫+按鍵監(jiān)聽(實現(xiàn)窗戶打開關(guān)閉操作)

窗戶已關(guān)閉

Frame動畫+按鍵監(jiān)聽(實現(xiàn)窗戶打開關(guān)閉操作)

//源碼下載

http://download.csdn.net/source/3222668

如果沒有資源分的或沒有CSDN號的可以留郵箱,或發(fā)郵件至254443233@qq.com;本人免費放送

Frame動畫+按鍵監(jiān)聽(實現(xiàn)窗戶打開關(guān)閉操作)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美色性 | 91伦理片 | 性欧美高清极品猛交 | 日韩顶级片| 久久永久免费中文字幕 | 国产毛A片啊久久久久久A | 成人在线一区二区 | 中文区永久区 | 亚洲一区视频 | av网址在线播放 | 看免费的毛片 | 91网页在线观看 | 亚洲欧美久久婷婷爱综合一区天堂 | 欧美黄视频 | 九九亚洲视频 | 91精品国产免费久久久久久 | 性xxxx免费观看视频 | 国产亚洲精品久久久久久老妇 | 第一次破處在线国语视频播放 | 午夜视频在线观看免费视频 | 日韩日日夜夜 | 欧美日韩视频在线 | 日本色图视频 | 日本aaaaa高清免费看 | 午夜影视在线观看免费完整高清大全 | 日韩黄色精品视频 | 狠狠色老熟妇老熟女 | 日韩av片网站 | 欧美精品一区二区免费 | 国产做国产爱免费视频 | 日韩中文字幕av | 国产精品亚洲第一 | 在线免费国产 | 久久久久久久久久久久久久久久久久久 | 色爱综合区五月小说 | 欧美日韩成人一区二区 | 天天爽天天碰狠狠添 | 久草在线资源福利站 | 色噜噜狠狠色综合日日 | 先锋影音av最新资源 | 成年人免费看 |