아래는 제가 구현한 소스입니다.
EditText에서 값을 불러와서 그것을 int형으로 바꿔 알파값을 적용시켜 이미지를 바꾸려고 합니다~
그런데 어떻게 해야할지 모르겠네요 ㅠㅠ
package com.swu.android;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
public class AnimateImage2 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.ani2);
final EditText editalpha=(EditText)findViewById(R.id.alpha);
final ImageView after=(ImageView)findViewById(R.id.img2);
editalpha.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if((event.getAction()==KeyEvent.ACTION_DOWN)&&(keyCode==KeyEvent.KEYCODE_ENTER)){
Integer aa=Integer.parseInt(""+editalpha.getText());
if(aa>100){
Toast.makeText(AnimateImage2.this, "nono", Toast.LENGTH_SHORT).show();
}else if(aa<0){
Toast.makeText(AnimateImage2.this, "nono", Toast.LENGTH_SHORT).show();
}else{
after.getDrawable().mutate().setAlpha(aa);
}
return true;
}
return false;
}
});
}
}
빨간부분이 의문의 지점입니다...ㅋㅋ
100보다 크거나 0보다 작은 값을 입력하면 토스트 메시지가 뜨는걸로 봐서 인트형으로는 잘 바꾼거 같은데
이상하게 setAlpha(aa)가 적용되지 않네요 ㅠㅠ
원래라면 입력한 값만큼 알파값이 적용되어 투명해 져야하는데 말이죠...
무엇이 문제일까요
if((event.getAction()==KeyEvent.ACTION_DOWN)&&(keyCode==KeyEvent.KEYCODE_ENTER)){
after.getDrawable().mutate().setAlpha(80);
return true;
}
그냥 이렇게 하면 알파값이 80만큼 투명도가 처리됩니다..ㅠ