ScrollView scroll = (ScrollView) findViewById(R.id.scrollView);
scroll.fullScroll(ScrollView.FOCUS_DOWN);


'android' 카테고리의 다른 글

텍스트 뷰에서 터치시 터치된 단어  (0) 2017.06.28
어플 재시작  (0) 2017.06.27
뒤로 가기 종료  (0) 2017.06.20
이미지뷰 어두워 지는 효과  (0) 2017.06.19
리사이클러뷰 아이템 접근  (0) 2017.06.16

WRITTEN BY
carbo

,
aboutTextView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                mOffset = aboutTextView.getOffsetForPosition(motionEvent.getX(), motionEvent.getY());
              //  mTxtOffset.setText("" + mOffset);
                Toast.makeText(HomeScreen.this, findWordForRightHanded(aboutTextView.getText().toString(), mOffset), Toast.LENGTH_SHORT).show();

            }
            return false;
        }
    });



private String findWordForRightHanded(String str, int offset) { // when you touch ' ', this method returns left word.
    if (str.length() == offset) {
        offset--; // without this code, you will get exception when touching end of the text
    }

    if (str.charAt(offset) == ' ') {
        offset--;
    }
    int startIndex = offset;
    int endIndex = offset;

    try {
        while (str.charAt(startIndex) != ' ' && str.charAt(startIndex) != '\n') {
            startIndex--;
        }
    } catch (StringIndexOutOfBoundsException e) {
        startIndex = 0;
    }

    try {
        while (str.charAt(endIndex) != ' ' && str.charAt(endIndex) != '\n') {
            endIndex++;
        }
    } catch (StringIndexOutOfBoundsException e) {
        endIndex = str.length();
    }

    // without this code, you will get 'here!' instead of 'here'
    // if you use only english, just check whether this is alphabet,
    // but 'I' use korean, so i use below algorithm to get clean word.
    char last = str.charAt(endIndex - 1);
    if (last == ',' || last == '.' ||
            last == '!' || last == '?' ||
            last == ':' || last == ';') {
        endIndex--;
    }

    return str.substring(startIndex, endIndex);
}


'android' 카테고리의 다른 글

스크롤뷰 스크롤 바닥으로 내리기  (0) 2017.06.28
어플 재시작  (0) 2017.06.27
뒤로 가기 종료  (0) 2017.06.20
이미지뷰 어두워 지는 효과  (0) 2017.06.19
리사이클러뷰 아이템 접근  (0) 2017.06.16

WRITTEN BY
carbo

,

어플 재시작

android 2017. 6. 27. 14:12

AlarmManager mgr = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);

            PendingIntent restartIntent = PendingIntent.getActivity(

                    mContext, 0, new Intent(mContext.getIntent()),

                    PendingIntent.FLAG_CANCEL_CURRENT);

            mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, restartIntent);

            System.exit(2);

'android' 카테고리의 다른 글

스크롤뷰 스크롤 바닥으로 내리기  (0) 2017.06.28
텍스트 뷰에서 터치시 터치된 단어  (0) 2017.06.28
뒤로 가기 종료  (0) 2017.06.20
이미지뷰 어두워 지는 효과  (0) 2017.06.19
리사이클러뷰 아이템 접근  (0) 2017.06.16

WRITTEN BY
carbo

,

뒤로 가기 종료

android 2017. 6. 20. 16:46

import android.app.Activity;
import android.widget.Toast;

public class BackPressCloseHandler {

private long backKeyPressedTime = 0;
private Toast toast;

private Activity activity;

public BackPressCloseHandler(Activity context) {
this.activity = context;
}

public void onBackPressed() {
if(System.currentTimeMillis() > backKeyPressedTime + 3000) {
backKeyPressedTime = System.currentTimeMillis();
showGuide();
return;
}
if(System.currentTimeMillis() <= backKeyPressedTime + 3000) {
activity.finishAffinity();
activity.finish();
android.os.Process.killProcess(android.os.Process.myPid());
toast.cancel();
}
}

private void showGuide() {
toast = Toast.makeText(activity,"뒤로가기 버튼을 한 번 더 누르시면 종료됩니다", Toast.LENGTH_SHORT);
toast.show();
}
}


'android' 카테고리의 다른 글

텍스트 뷰에서 터치시 터치된 단어  (0) 2017.06.28
어플 재시작  (0) 2017.06.27
이미지뷰 어두워 지는 효과  (0) 2017.06.19
리사이클러뷰 아이템 접근  (0) 2017.06.16
버튼 자동 클릭  (0) 2017.06.16

WRITTEN BY
carbo

,

imageView.setColorFilter(Color.parseColor("#BDBDBD"), PorterDuff.Mode.MULTIPLY);

'android' 카테고리의 다른 글

어플 재시작  (0) 2017.06.27
뒤로 가기 종료  (0) 2017.06.20
리사이클러뷰 아이템 접근  (0) 2017.06.16
버튼 자동 클릭  (0) 2017.06.16
FrameLayout의 layout_gravity 설정  (0) 2017.06.01

WRITTEN BY
carbo

,
ViewGroup item = (ViewGroup) recyclerView.getLayoutManager().findViewByPosition(selected_position);


'android' 카테고리의 다른 글

뒤로 가기 종료  (0) 2017.06.20
이미지뷰 어두워 지는 효과  (0) 2017.06.19
버튼 자동 클릭  (0) 2017.06.16
FrameLayout의 layout_gravity 설정  (0) 2017.06.01
키보드 가리기  (0) 2017.06.01

WRITTEN BY
carbo

,

버튼 자동 클릭

android 2017. 6. 16. 10:12
button.performClick();


'android' 카테고리의 다른 글

이미지뷰 어두워 지는 효과  (0) 2017.06.19
리사이클러뷰 아이템 접근  (0) 2017.06.16
FrameLayout의 layout_gravity 설정  (0) 2017.06.01
키보드 가리기  (0) 2017.06.01
함수 끝나고 다른 함수 실행  (0) 2017.06.01

WRITTEN BY
carbo

,

The layout_gravity attribute lands on the FrameLayout.LayoutParams, not on the view itself. You'll need something like:

mCameraPreview = new CameraPreview(this, recordMode);
FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview_wrapper);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
    FrameLayout.LayoutParams.WRAP_CONTENT, 
FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.BOTTOM); preview.addView(mCameraPreview, params);


'android' 카테고리의 다른 글

리사이클러뷰 아이템 접근  (0) 2017.06.16
버튼 자동 클릭  (0) 2017.06.16
키보드 가리기  (0) 2017.06.01
함수 끝나고 다른 함수 실행  (0) 2017.06.01
안드로이드 화면 사이즈 구하기  (0) 2017.03.20

WRITTEN BY
carbo

,

키보드 가리기

android 2017. 6. 1. 15:56

private void init(){

    imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

    search = (EditText) findViewById(R.id.search_edittext);

}

 

//키보드를 가림.

private void hideKeyboard(){

    imm.hideSoftInputFromWindow(search.getWindowToken(), 0);

}


//키보드를 보여줌.

private void showKeyboard(){

    imm.showSoftInput(searchTxt, 0);

}




//////////////////////////

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(search.getWindowToken(), 0);


'android' 카테고리의 다른 글

버튼 자동 클릭  (0) 2017.06.16
FrameLayout의 layout_gravity 설정  (0) 2017.06.01
함수 끝나고 다른 함수 실행  (0) 2017.06.01
안드로이드 화면 사이즈 구하기  (0) 2017.03.20
Custom SimpleAdapter  (0) 2017.02.22

WRITTEN BY
carbo

,


안드로이드 코딩하다보면 1초후에 동작 같은 기능이 필요할때가 있다.

이럴경우 handle을 사용하면 된다.


단순히 1초후에 실행하고, 실행이 끝난후 확인하는 기능


	new Handler().postDelayed(new Runnable() {// 1 초 후에 실행
		@Override
		public void run() {
			// 실행할 동작 코딩

			mHandler.sendEmptyMessage(0);	// 실행이 끝난후 알림
		}
	}, 1000);	



	Handler mHandler = new Handler() {
		public void handleMessage(Message msg) {  // 실행이 끝난후 확인 가능
			
		}
	};	


3초후에 실행

private Handler mHandler = new Handler();
mHandler.postDelayed(mMyTask, 3000); // 3초후에 실행

private Runnable mMyTask = new Runnable() {
	@Override
	public void run() {
		// 실제 동작
	}
};


0.5초 후에 실행하고 실행시 메시지를 전달하며, 실행후 받은 메시지에 따라 처리하는 기능

	new Handler().postDelayed(new Runnable() {// 0.5 초 후에 실행
		@Override
		public void run() {
			// 실행할 동작 코딩
			Message msg1 = mHandler.obtainMessage();  //사용할 핸들러를 이용해서 보낼 메시지 객체 생성
			Bundle b1 = new Bundle();	//메시지를 담을 번들 생성
			b1.putBoolean("END_AUTH", true);	//번들에 메시지 추가
			msg1.setData(b1);	//메세지에 번들을 넣는다.
			mHandler.sendMessage(msg1); 	//메세지를 핸들러로 넘긴다.
		}
	}, 500);	


	Handler mHandler = new Handler() {
		public void handleMessage(Message msg) {  // 실행이 끝난후 확인 가능
        		Bundle bd = msg.getData();
        		if(bd.getBoolean("END_AUTH")){
        			// 메시지를 받고 처리할 부분

        		}
			
		}
	};	


참고1.. Thread를 이용한 바로 처리하는 방법


new Thread(new Runnable() { @Override public void run() { // 로직처리 handler.sendEmptyMessage(0); } }).start(); Handler handler = new Handler() { @Override public void handleMessage(Message msg) { // UI처리 } };


참고2.. Timer를 이용한 처리방법

new Timer().schedule(new TimerTask() {
    public void run() {
        // UI 및 로직
    }
}, 1000); // 1초후 실행


참고3. Async Task를 이용한 바로 처리 방법


new AsyncTask() {
    @Override
    protected void onPreExecute() {
        // UI 처리
        super.onPreExecute();
    }

    @Override
    protected Boolean doInBackground(String... params) {
        // 로직 처리
        return true;
    }

    @Override
    protected void onProgressUpdate(Integer... progress) {
        // UI 처리
    }

    @Override
    protected void onPostExecute(Boolean result) {
        // UI 처리
    }

    @Override
    protected void onCancelled() {
        super.onCancelled();
    }
}.execute();



출처: http://androi.tistory.com/57 [안드로이 스토리]

'android' 카테고리의 다른 글

FrameLayout의 layout_gravity 설정  (0) 2017.06.01
키보드 가리기  (0) 2017.06.01
안드로이드 화면 사이즈 구하기  (0) 2017.03.20
Custom SimpleAdapter  (0) 2017.02.22
인텐트 전환효과 없애기  (0) 2017.02.20

WRITTEN BY
carbo

,
public static int getScreenWidth() {
    return Resources.getSystem().getDisplayMetrics().widthPixels;
}

public static int getScreenHeight() {
    return Resources.getSystem().getDisplayMetrics().heightPixels;
}


'android' 카테고리의 다른 글

키보드 가리기  (0) 2017.06.01
함수 끝나고 다른 함수 실행  (0) 2017.06.01
Custom SimpleAdapter  (0) 2017.02.22
인텐트 전환효과 없애기  (0) 2017.02.20
버튼 중복클릭 방지  (0) 2016.11.29

WRITTEN BY
carbo

,

Custom SimpleAdapter

android 2017. 2. 22. 12:23

CustomAdapter.java

package example.abhiandriod.customsimpleadapterexample;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;

public class CustomAdapter extends SimpleAdapter {
LayoutInflater inflater;
Context context;
ArrayList<HashMap<String, String>> arrayList;

public CustomAdapter(Context context, ArrayList<HashMap<String, String>> data, int resource, String[] from, int[] to) {
super(context, data, resource, from, to);
this.context = context;
this.arrayList = data;
inflater.from(context);
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
ImageView imageView = (ImageView) view.findViewById(R.id.imageView);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(context, arrayList.get(position).get("name"), Toast.LENGTH_SHORT).show();
}
});
return view;
}

}


http://abhiandroid.com/ui/custom-simpleadapter.html

'android' 카테고리의 다른 글

함수 끝나고 다른 함수 실행  (0) 2017.06.01
안드로이드 화면 사이즈 구하기  (0) 2017.03.20
인텐트 전환효과 없애기  (0) 2017.02.20
버튼 중복클릭 방지  (0) 2016.11.29
안드로이드 뷰 애니메이션 효과  (0) 2016.11.24

WRITTEN BY
carbo

,
Intent i = new Intent(this, AppBarActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
this.startActivity(i);
this.overridePendingTransition(0, 0);


'android' 카테고리의 다른 글

함수 끝나고 다른 함수 실행  (0) 2017.06.01
안드로이드 화면 사이즈 구하기  (0) 2017.03.20
Custom SimpleAdapter  (0) 2017.02.22
버튼 중복클릭 방지  (0) 2016.11.29
안드로이드 뷰 애니메이션 효과  (0) 2016.11.24

WRITTEN BY
carbo

,

버튼 중복클릭 방지

android 2016. 11. 29. 10:05

버튼 중첩시 레이아웃 이용해서 중복클릭 방지


mTopLayout.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        return true;
    }
});


위의 코드에서  핵심은 return 값을 true 주는 것인데 Developer 에는 아래 와 같이 적혀 있습니다.


Returns
  • True if the listener has consumed the event, false otherwise.


'android' 카테고리의 다른 글

함수 끝나고 다른 함수 실행  (0) 2017.06.01
안드로이드 화면 사이즈 구하기  (0) 2017.03.20
Custom SimpleAdapter  (0) 2017.02.22
인텐트 전환효과 없애기  (0) 2017.02.20
안드로이드 뷰 애니메이션 효과  (0) 2016.11.24

WRITTEN BY
carbo

,

//등장 애니메이션
AnimationSet set = new AnimationSet(true);
set.setInterpolator(new DecelerateInterpolator()); //점점 느리게


Animation ani01 = new AlphaAnimation(0.0f,1.0f); //알파 애니메이션
ani01.setDuration(1000);


Animation ani02 = new TranslateAnimation(800, 0, 0, 0); // 이동 애니메이션
ani02.setDuration(1000);


set.addAnimation(ani01);
set.addAnimation(ani02);


customViewHolder.popup1.setAnimation(set); //customViewHolder.popup1은 view 이름



- 점점 빠르게 : accelerate_interpolator
- 점점 느리게 : decelerate_interpolator
- 위 둘을 동시에 : accelerate_decelerate_interpolator
- 시작위치에서 조금 뒤로 당겼다 이동 : anticipate_interpolator
- 도착위치를 조금 지나쳤다가 도착위치로 이동 : overshoot_interpolator
- 위 둘을 동시에 : anticipate_overshoot_interpolator
- 도착위치에서 튕김 : bounce_interpolator 

'android' 카테고리의 다른 글

함수 끝나고 다른 함수 실행  (0) 2017.06.01
안드로이드 화면 사이즈 구하기  (0) 2017.03.20
Custom SimpleAdapter  (0) 2017.02.22
인텐트 전환효과 없애기  (0) 2017.02.20
버튼 중복클릭 방지  (0) 2016.11.29

WRITTEN BY
carbo

,