'분류 전체보기'에 해당되는 글 714건

  1. 2016.07.15 app.config 수정 edit
  2. 2016.07.06 Page 기능을 구현할때는 Linq Skip을 활용하자.
  3. 2016.06.20 URI Parameter 붙이기
  4. 2016.06.08 [WPF] IsolatedStorageManager
  5. 2016.05.19 프로그램 죽을때 바로 재시작하게 하기
  6. 2016.05.03 [포트폴리오] POP Camera (2016.04~2016.04) 1주
  7. 2016.05.03 [포트폴리오] Photo AR (2016.4~2016.4) 2주
  8. 2016.04.25 ListBox에서 Item 스크롤 터치시 화면 전체가 움직이던 문제
  9. 2016.04.25 SoundPlayer 사용
  10. 2016.04.21 blend 디자인모드 무시
  11. 2016.04.20 RenderTargetBitmap Memory Leak 해결
  12. 2016.04.20 Simple Uniq ID만들기
  13. 2016.04.19 Image Filter 사용하기 (이미지 프로세싱)
  14. 2016.04.14 WPF HtmlToXaml에 Image Add하기
  15. 2016.04.08 image sequence 만들기 (Image Animation)
  16. 2016.03.18 [포트폴리오] Windows 10 Store Melon App(2015.10~2016.1)
  17. 2015.07.25 쓰레드(Thread) 정지하고 다시 시작하는법
  18. 2015.07.23 handler를 이용해 Thread UI 해결하기
  19. 2015.07.22 안드로이드 커스텀 이벤트 등록
  20. 2015.07.16 외부 라이브러리 jar 만들고 연동방법
  21. 2015.07.03 윈도우즈 스토어 앱에서 윈도우 버전 알기
  22. 2015.03.17 [포트폴리오] 오즈 디스플레이 치과 차트 프로그램
  23. 2015.03.12 영어 공부 사이트
  24. 2015.02.13 ScatterviewItem 뒤에 검은색 백그라운드 쉐도우 없애기
  25. 2014.12.11 [포트폴리오] 중국 Wanda 시네마 CMB
  26. 2014.12.11 [포트폴리오] 안드로이드용 TakeOut 2,0
  27. 2014.10.28 [android] kitcat 에서 refresh gallery 문제 3
  28. 2014.09.03 ADB 에러 - more than one device
  29. 2014.08.28 ImagePager SetCurrentItem으로 강제로 이동시 Smooth 하게 이동하기
  30. 2014.08.27 앱 종료 시점알기, 앱종료인지 아니면 Activity끼리 전환인지 구분
wpf2016. 7. 15. 12:44
private static void UpdateSetting(string key, string value)
{
Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
configuration.AppSettings.Settings[key].Value = value;
configuration.Save();
ConfigurationManager.RefreshSection("appSettings");
}



Posted by 동동(이재동)
c#2016. 7. 6. 13:41

Linq가 없는 시절  페이징 할려면 


private List<Data> MakePhotoList(int startCount)
{
var tempPhotoList = new List<Data>();
int maxCount = startCount + 9;
for (int i = startCount; startCount < maxCount; startCount++)
{
tempPhotoList.Add(_photoList[i]);
}
return tempPhotoList;
}


이런식으로 해야만 했다.

하지만 Linq가 있으면

_photoList.Skip(startCount).Take(9).ToList();

한줄로 끝~


'c#' 카테고리의 다른 글

사용하지 않을 메소드앞에 [Obsolete] 어트리뷰트 사용  (0) 2020.01.03
list 삭제  (0) 2019.08.02
URI Parameter 붙이기  (0) 2016.06.20
RenderTargetBitmap Memory Leak 해결  (0) 2016.04.20
Simple Uniq ID만들기  (0) 2016.04.20
Posted by 동동(이재동)
c#2016. 6. 20. 13:45
public static Uri AttachParameters(this Uri uri, NameValueCollection parameters)
{
var stringBuilder = new StringBuilder();
string str = "?";
for (int index = 0; index < parameters.Count; ++index)
{
stringBuilder.Append(str + parameters.AllKeys[index] + "=" + parameters[index]);
str = "&";
}
return new Uri(uri + stringBuilder.ToString());
}





var uri = new Uri(BaseUrl + "/TableQRCodeUpdate").AttachParameters(new NameValueCollection
{
{"TableKey",tableKey},
{"TableQRCode",tableQrCode}
});

이렇게 사용하면 된다.


Posted by 동동(이재동)
wpf2016. 6. 8. 15:28
public static class IsolatedStorageManager
{
public static void Save(string text)
{
IsolatedStorageFile isolatedStorage = IsolatedStorageFile.GetUserStoreForAssembly();
StreamWriter srWriter = new StreamWriter(new IsolatedStorageFileStream("path", FileMode.Create, isolatedStorage));
srWriter.WriteLine(text);
srWriter.Flush();
srWriter.Close();
}
public static string Load()
{
IsolatedStorageFile isolatedStorage = IsolatedStorageFile.GetUserStoreForAssembly();
StreamReader srReader = new StreamReader(new IsolatedStorageFileStream("path", FileMode.OpenOrCreate, isolatedStorage));
if (srReader != null)
{
while (!srReader.EndOfStream)
{
string item = srReader.ReadLine();
srReader.Close();
return item;
}
}
srReader.Close();
return @"C:\movie";
}
}


















Posted by 동동(이재동)
wpf2016. 5. 19. 14:46

전시회에서 프로그램이 죽어서 꺼지게 되면 난감하다.


그걸 방지하기 위한 꼼수로 프로그램을 잘짜면 죽지는 않겠지만


간혹가다 생기는 메모리 누수및 관리로 인해 프로그램이 죽을때도 있기에 안정장치로 설정할 수 있다.


app.xaml.cs 에서


this.DispatcherUnhandledException += App_DispatcherUnhandledException;


 private void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)

        {

            Thread.Sleep(1000);

            System.Windows.Forms.Application.Restart();

            Thread.Sleep(1000);

            Process.GetCurrentProcess().Kill();

        }


컴퓨터가 빠를경우 sleep을 사용할필요가 없는데 느린경우가 있어서 썼다.

'wpf' 카테고리의 다른 글

app.config 수정 edit  (0) 2016.07.15
[WPF] IsolatedStorageManager  (0) 2016.06.08
ListBox에서 Item 스크롤 터치시 화면 전체가 움직이던 문제  (0) 2016.04.25
SoundPlayer 사용  (0) 2016.04.25
blend 디자인모드 무시  (0) 2016.04.21
Posted by 동동(이재동)
포트폴리오2016. 5. 3. 14:27

Photo AR을 만들고 난 뒤 라이브러리를 이용해서 레이아웃및 디자인 , 몇가지 기능 추가 및 삭제 해서 만든 프로그램


이미 Photo AR에서 여러가지 시행착오를 거쳤기에 재활용해서 금방 만들 수 있었다.











Posted by 동동(이재동)
포트폴리오2016. 5. 3. 14:25

영화관이나 행사장 근처에서 사진찍으면 이메일로 보내주는 딱 그런 용도이다...


키오스크에 들어가는 프로그램으로


사용자가 캠으로 사진을 찍고 배경, 필터, 스티커 등을 마음대로 편집할 수 있는


프로그램 서버로부터 이미지 및 데이터를 미리 다운로드 하는 방식으로 유연하다


카메라 메모리 관리하는부분이 개인적으로 힘들었던 프로젝트였다.
















Posted by 동동(이재동)
wpf2016. 4. 25. 13:36

이상하게 ListBox에서 Item끝으로 터치하면 프로젝트 화면 전체가 움직였다.


여러가지 실험을 해본 결과 


xMakeupListPanel.ManipulationBoundaryFeedback += XMakeupListPanel_ManipulationBoundaryFeedback;
private void XMakeupListPanel_ManipulationBoundaryFeedback(object sender, ManipulationBoundaryFeedbackEventArgs e)
{
e.Handled = true;
}

이렇게 해결 하였다..

참고 : http://stackoverflow.com/questions/4505772/wpf-listbox-with-touch-inertia-pulls-down-entire-window


'wpf' 카테고리의 다른 글

[WPF] IsolatedStorageManager  (0) 2016.06.08
프로그램 죽을때 바로 재시작하게 하기  (0) 2016.05.19
SoundPlayer 사용  (0) 2016.04.25
blend 디자인모드 무시  (0) 2016.04.21
Image Filter 사용하기 (이미지 프로세싱)  (0) 2016.04.19
Posted by 동동(이재동)
wpf2016. 4. 25. 11:26

사운드 파일  실행


SoundPlayer sp = new SoundPlayer(Resources.Click);
sp.Play();


해당 프로젝트 Resources.resx에서 상단에 리소스 추가 버튼을 누른후 wav파일을 등록후 사용한다~


Posted by 동동(이재동)
wpf2016. 4. 21. 17:47

DesignerProperties.GetIsInDesignMode(this)



출처 : http://www.stievens-corner.be/index.php/10-wpf/47-designerproperties-getisindesignmode

Posted by 동동(이재동)
c#2016. 4. 20. 14:43


       bmp.Freeze();  
       bmp = null;  
       GC.Collect();  
       GC.WaitForPendingFinalizers();  
       GC.Collect(); 


bmp는 rendertargetbitmap


가비지컬렉터를 수동으로 호출 해야한다.;;



출처 : http://stackoverflow.com/questions/29560264/rendertargetbitmap-impossible-to-free-dispose-handle

'c#' 카테고리의 다른 글

사용하지 않을 메소드앞에 [Obsolete] 어트리뷰트 사용  (0) 2020.01.03
list 삭제  (0) 2019.08.02
Page 기능을 구현할때는 Linq Skip을 활용하자.  (0) 2016.07.06
URI Parameter 붙이기  (0) 2016.06.20
Simple Uniq ID만들기  (0) 2016.04.20
Posted by 동동(이재동)
c#2016. 4. 20. 11:05
Guid.NewGuid()

출처 : http://stackoverflow.com/questions/11313205/generate-a-unique-id

Posted by 동동(이재동)
wpf2016. 4. 19. 13:24

Bitmap 이미지 프로세싱을 이용하여 흑백, 세피아톤, 반전, 투명, 만화 등의 효과를 사용할 수 있다...


C#에 있는 샘플 코드를  WPF에서 사용할수 있도록 바꾸었다.



필터가 추가 될때마다 소스를 업데이트 하겠다.


참고한 사이트 : https://softwarebydefault.com/2013/03/02/bitmap-image-filters/



ImageFilterTest.zip




조금더 추가한 버전(blur,, 가우시안블러,FuzzEdgeBlur)


ImageFilterTest.zip







Posted by 동동(이재동)
wpf2016. 4. 14. 16:38

대박이다.... 


HtmlToXaml에서 <img src> 태그를 먹이면 적용이 안되었다.


<P> <BR> 등등 기본적인 태그는 테스트 해보니 잘되었다... 왜 이거는 안된것일까


Nuget에서 최신버전을 포함 많은 버전을 다운받아 보았지만 되지를 않았다...


혹시나해서 소스를 까봤더니 대박........ Image 추가하는 메소드에 아무것도 없던것이다.!!!


이놈들이 귀찮거나 문제가 있어서 소스를 지웠거나 아예 구현을 안했을 가능성이 높다...


내가 짜야하나 했는데 구글신을 검색해보니 역시 능력자가 구현해놨다 ㅋㅋ



참조한곳

http://blogs.spencen.com/?p=656


적용해서 해보니 잘되더라~ 


내가 적용해서 솔루션을 만들어 놓음



htmltoxaml.zip






Posted by 동동(이재동)
wpf2016. 4. 8. 16:54

이미지 여러장을 이용해서 애니메이션을 만드는것


ImageSequence.zip


참고 : http://coderelief.net/2009/05/21/frame-based-animation-in-wpf/


public partial class MainWindow : Window
{
public static readonly DependencyProperty FramesPerSecondProperty = DependencyProperty
.Register("FramesPerSecond", typeof(double), typeof(MainWindow));
private List<string> imageList = new List<string>();
private TimeSpan LastRenderTime { get; set; }
public double FramesPerSecond
{
get { return (double)GetValue(FramesPerSecondProperty); }
set
{
if (value <= 0)
{
throw new Exception("FramesPerSecond must be greater than 0.");
}
SetValue(FramesPerSecondProperty, value);
}
}
private int index = 1;
public MainWindow()
{
InitializeComponent();
this.Loaded += MainWindow_Loaded;
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
for (int i = 1; i < 21; i++)
{
imageList.Add(string.Format("/ImageSequence;component/Images/e2000{0}.png", i));
}
FramesPerSecond = 10;
CompositionTarget.Rendering += CompositionTarget_Rendering;
}
private void CompositionTarget_Rendering(object sender, EventArgs e)
{
TimeSpan timeSinceLastRender;
timeSinceLastRender = (DateTime.Now.TimeOfDay - LastRenderTime);
if (timeSinceLastRender.TotalSeconds < (1 / FramesPerSecond))
{
return;
}
LastRenderTime = DateTime.Now.TimeOfDay;
if (index < 20)
{
xImage.Source = new BitmapImage(new Uri(imageList[index], UriKind.RelativeOrAbsolute));
index++;
}
else
{
index = 1;
}
}
}


Posted by 동동(이재동)
포트폴리오2016. 3. 18. 12:58

기존 윈도우 8, 8.1에서만 동작하던 멜론 앱을 10에서도 잘 작동하도록 수정하였다.


수정과정에서 기획변경 및 멜론 DJ 멜군 업그레이드 및 새로운 기능 설정창 추가 등등 여러가지를 업그레이드 하였다.


서버쪽 이슈등도 모두 대응 









Posted by 동동(이재동)
Android App2015. 7. 25. 17:30

찾아볼 시간이 없어서 그냥 간단한 방법으로 하였다,


public void connect(String nullMsg) {

broadCastThread = new Thread(new Runnable() {

public void run() {

try {

while (!broadCastThread.interrupted()) {

//구현

}

} catch (Exception e) {

e.printStackTrace();

}

}

});


broadCastThread.start();


}

그리고 멈출때는 


if (broadCastThread != null && broadCastThread.isAlive()) {

broadCastThread.interrupt();


그리고 다시 시작할때는 어쩔수 없이 connect()메소드를 다시 호출한다. 그냥 전역 쓰레드를 다시 정의해서 스타트 돌리는 꼼수이다.


wait, nofify도 된다는데 안되서 조금더 조사를 해봐야 할듯~

Posted by 동동(이재동)
Android App2015. 7. 23. 11:46

Handler mHandler = new Handler();


핸들러를 만들고

Thread 안에 이렇게 쓰면  UI를 변경할수 있다.

mHandler.post(new Runnable() {
public void run() {
mTV.setText(msg);
}
});

더 좋은 방법이 있지만 간단하게 사용할려면 이게 편한듯

참고 : http://blog.naver.com/slrkanjsepdi/90116465979


Posted by 동동(이재동)
Android App2015. 7. 22. 11:37

일단 커스텀 이벤트 등록


public interface MessageEventListener {

void onMessageEventListener(String msg);


}


이벤트를 보내기 위한 리스너 생성  (예: bc라는 클래스라고 하자)


public MessageEventListener mMessageListener;


public void setOnMessageListener(MessageEventListener listener){

mMessageListener = listener;

}



이벤트 받을 클래스에 리스너 등록

bc.setOnMessageListener(new MessageEventListener(){


@Override

public void onMessageEventListener(String msg) {

// TODO Auto-generated method stub

Log.i("CustomEvent", "Event Message : "+msg);

}

});



bc라는 클래스에서 이벤트를 호출 

mMessageListener.onMessageEventListener(msg);




Posted by 동동(이재동)
Android App2015. 7. 16. 13:34



1. 같은 워크스페이스에 안드로이드 빈프로젝트를 하나 만들고 src에 클래스 파일을 만든다.


2. libs에 > import > General > File System > jar가 위치한 폴더를 선택 > 원하는 jar 파일만 체크하여 추가.

  (폴더는 해당 bin에 자동으로 생성된 jar파일을 직접 선택)


3. 빌드패스에서  라이브러리 > Add JAR> lib폴더에 있는 jar 을 직접 선택


4. 메소드 실행후에  class 를 찾을수 없다는 메세지가 나오면 폴더 선택 버튼을 누르고 라이브러리 플더 자체를 선택한다.



Posted by 동동(이재동)
Windows10 App2015. 7. 3. 10:58

윈도우 스토어앱에서는

 

그 흔한 Osversion 메소드를 지원하지 않는다 ㅡ.ㅡ;;;

 

system.environment.osversion

 

그래서 어떻게 해야 하나 찾아봤는데 역시 구글신이 해결해주었다.

 

 

핵심소스는 이부분이다.

 

 

public static async Task<string> GetWindowsVersionAsync()
{
// There is no good place to get this so we're going to use the most popular
// Microsoft driver version number from the device tree.
var requestedProperties = new[] { DeviceDriverVersionKey, DeviceDriverProviderKey };
var microsoftVersionedDevices = (await PnpObject.FindAllAsync(PnpObjectType.Device, requestedProperties, RootContainerQuery))
.Select(d => new { Provider = (string)d.Properties.GetValueOrDefault(DeviceDriverProviderKey),
Version = (string)d.Properties.GetValueOrDefault(DeviceDriverVersionKey) })
.Where(d => d.Provider == "Microsoft" && d.Version != null)
.ToList();
var versionNumbers = microsoftVersionedDevices
.GroupBy(d => d.Version.Substring(0, d.Version.IndexOf('.', d.Version.IndexOf('.') + 1)))
.OrderByDescending(d => d.Count())
.ToList();
var confidence = (versionNumbers[0].Count() * 100 / microsoftVersionedDevices.Count);
return versionNumbers.Count > 0 ? versionNumbers[0].Key : "";
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

참고 :  http://stackoverflow.com/questions/10125324/get-os-version-in-winrt-metro-app-c-sharp

'Windows10 App' 카테고리의 다른 글

UWP(윈도우 유니버설 응용 프로그램)  (0) 2016.10.24
Posted by 동동(이재동)
포트폴리오2015. 3. 17. 14:26

치과 이미지 및 각종 문서를 테이블 PC에서 멋있는 UI로 보여주는 프로그램

 

실제 영국과 일본에서 많은 라이센스를 팔았다고 들음

 

 

 

 

 

 

 

 

 

Posted by 동동(이재동)
영어공부2015. 3. 12. 11:23
http://www.wordbreak.net/  깜박이 영어같은 단어암기 사이트
http://babel.altavista.com/translate.dyn  번역 사이트
http://kr.babelfish.yahoo.com/translate_txt  번역 사이트
http://www.gohackers.com/html/eng_edu/eng_edu.htm?idx=12  해커스 영어 학습 사이트
http://www.urbandictionary.com/  영어 슬랭 사전
http://www.eoneo.com/lang/en/freezone/grammarChecker/  영어 문법 검사
http://translate.google.com/  구글 번역 사이트
http://www.sharedtalk.com/  외국인 친구 사귀는 곳
http://www.keybr.com/welcome  영타연습, 속도측정
http://www.merriam-webster.com  영영 사전
http://www.uiowa.edu/~acadtech/phonetics/english/frameset.html발음교정사이트
http://www.elllo.org  혼자 영어공부하기 좋은 사이트
http://lingual.net/  영화로 영어공부
http://www.breakingnewsenglish.com/  브레이킹뉴스잉글리쉬, 뉴스, 스크립트, 연습문제등
http://englishcube.net/  영어공부 할 수 있는 온갖 사이트 망라
http://www.interpals.net/  외국인 펜팔사이트
http://www.bbc.co.uk/worldservice/learningenglish/  비비씨 러닝 잉글리시
http://blog.naver.com/mstarcom1  영어공부, 미국생활 블로그
http://www.omegle.com  외국인과 채팅

 

'영어공부' 카테고리의 다른 글

[site] 영어 채팅 에 빠져보자~  (0) 2009.06.15
영어 만화 사이트  (0) 2009.04.01
단어 공부하기 좋은 사이트^^  (0) 2009.03.18
homework in innotive (february, 23,2009)  (0) 2009.02.23
영어원서로 공부하자 영어  (0) 2008.12.30
Posted by 동동(이재동)
Surface2015. 2. 13. 13:44
ScatterViewItem svi = new ScatterViewItem();
svi.Background = new SolidColorBrush(Colors.Transparent);
svi.ShowsActivationEffects = false;
svi.BorderBrush = System.Windows.Media.Brushes.Transparent;

RoutedEventHandler loadedEventHandler = null;
loadedEventHandler = new RoutedEventHandler(delegate
{
    svi.Loaded -= loadedEventHandler;
    Microsoft.Surface.Presentation.Generic.SurfaceShadowChrome ssc;
    ssc = svi.Template.FindName("shadow", svi) as Microsoft.Surface.Presentation.Generic.SurfaceShadowChrome;
    ssc.Visibility = Visibility.Hidden;
});
svi.Loaded += loadedEventHandler;

참고 : http://stackoverflow.com/questions/4602013/removing-shadow-from-scatterviewitem-isnt-working

Posted by 동동(이재동)
포트폴리오2014. 12. 11. 11:55

중국 출장 3주간의 너무 힘든 일이였다.

 

개발환경도 힘들고 공사하는중에 개발을 해야해서 먼지도 많이 먹고 음식도 안맞고 잠도 힘들었다...

 

하루에 3시간 이상 잔적이 없는 엄청 힘들었던 프로젝트다.. 역시 중국 ㅠㅠ

 

모니터는 총 1920*1080 해상도로 왼쪽 4 중간 3 오른쪽 4 개로 총 11개의 모니터가 들어간다.

 

총 4개의 프로그램으로 나누어져 있는데

 

나는 이걸 cmba  ,cmb, cmbb 로 불렀다. 그리고 마지막 소켓 Server

 

젤 좌측에는 cms의 api로부터 대기오염정보난 공지사항 영화대사 , 음식 포스터 이미지등을 서버로부터 받아서 뿌려주며

애니메이션 된다.

 

가운데는

영화가 리스트가 보여지며 TimeTable 이 있어서 현재 시간에 맞게 영화가 보여지며 좌석수가 업데이트되고 타임테이블이

5분단위로 움직여서 항상 정해진 시간에 맞게 보여진다.

광고및 시간에 맞게 입장알림 기능이 있다.

 

오른쪽...이게 젤 힘들었던 부분인데

영화정보를 보여지는 부분인데 동영상 및 애니메이션이 너무 많이 들어가서 메모리 관리에 애를 먹었다.

사용한 애니메이션은 항상 지우고 새롭게 계속 추가 생성하는 형식으로 만들었으며

시간이 지난 영화는 삭제되고 좌석수는 5초 단위로 업데이트 되며 각종 영화정보및 영상이 나오고

광고및 입장알림 영화는 풀재생으로 된다.

 

이모든것을 컨트롤하는 소켓을 이용한 서버가 있으며

서버는 그냥 간단한 WPF ui로 만들었다.

 

현재 중국 완다 시네마에 정상적으로 작동중이다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Posted by 동동(이재동)
포트폴리오2014. 12. 11. 11:43

개발언어 : 안드로이드

 

기존 TakeOut에 파일전송 기능이 파일 뷰어 기능을 추가한 버전이다.

 

테이블에서 색 패턴을 읽어서 핸드폰이랑 연동이 되어 이미지 및 각종 파일을 무선으로 전송할수 있고

 

파일 뷰어를 이용해 영구적으로 관리 할수 있고..

 

PDF, Image, pptx,xls 파일등을 클릭시 바로 확인 가능하다.

 

 

 

 

 

 

Posted by 동동(이재동)
Android App2014. 10. 28. 14:12

기존 킷켓 이전에는

 

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));

 

이렇게해서 겔러리를 갱신했었지만

 

킷캣부터 이렇게 바꼈다

private void galleryAddPic() {
    Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
    File f = new File(mCurrentPhotoPath);
    Uri contentUri = Uri.fromFile(f);
    mediaScanIntent.setData(contentUri);
    this.sendBroadcast(mediaScanIntent);
}

 

대신에 저 photoPath에 경로를 주는것이 아니라 업로드한 사진 경로 풀경로를 줘야 한다는것이다. 파일이름까지

 

참고 : http://www.codeproject.com/Questions/689342/Refresh-gallery-in-android-kitkat

Posted by 동동(이재동)
Android App2014. 9. 3. 16:44

주로 이클립스에서 안드로이드 장치를 연결한 후 발생하는 에러.

 

실행 중에 운용하는 기기는 한 대 뿐인데 추가적으로 똑같은 기기가 더 출력되면서

 

정상적으로 실행이 안될때가 있다.

 

more than one device 또는 more than one device and emulator 에러 발생시

 

"cmd"에서 adb위치로 이동한다.

 

>> cd C:\Android\platform-tools

>> adb kill-server

>> adb start-server

Posted by 동동(이재동)
Android App2014. 8. 28. 17:49
setCurrentItem(count,true);

 

마지막에 true는 스무스하게 움직이게 하는거다

 

는 무슨.... 작동이 안된다.

 

그래서  ViewPager를 상속받아서 새로 만들었다.

 

package com.example.redcarpetwall;

import java.lang.reflect.Field;

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.animation.DecelerateInterpolator;
import android.widget.Scroller;

public class ImageSlidePager extends ViewPager{
 
 public ImageSlidePager(Context context) {
        super(context);
    }

    public ImageSlidePager(Context context, AttributeSet attr) {
        super(context, attr);
        setMyScroller();
    }
   
   
  
    private void setMyScroller()
    {
      try
      {
              Class<?> viewpager = ViewPager.class;
              Field scroller = viewpager.getDeclaredField("mScroller");
              scroller.setAccessible(true);
              scroller.set(this, new MyScroller(getContext()));
      } catch (Exception e)
      {
          e.printStackTrace();
      }
    }
   
    public class MyScroller extends Scroller
    {
      public MyScroller(Context context)
      {
          super(context, new DecelerateInterpolator());
      }

      @Override
      public void startScroll(int startX, int startY, int dx, int dy, int duration)
      {
          super.startScroll(startX, startY, dx, dy, 1000 /*1 secs*/);
      }
    }
}

 

그러니 잘 작동한다.


이건 imageslide adapter

 

package com.example.redcarpetwall;

import android.R;
import android.app.Activity;
import android.content.res.AssetManager;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;

public class ViewPagerAdapter extends PagerAdapter {

 Activity activity;
 int imageArray[];

 public ViewPagerAdapter(Activity act, int[] imgArra) {
  imageArray = imgArra;
  activity = act;
 }

 public int getCount() {
  return imageArray.length;
 }

 public Object instantiateItem(View collection, int position) {
  ImageView view = new ImageView(activity);
//  view.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
//    LayoutParams.FILL_PARENT));
  view.setScaleType(ScaleType.FIT_XY);
  //view.setBackgroundResource(imageArray[position]);
  view.setImageResource(imageArray[position]);
  ((ViewPager) collection).addView(view, 0);
  return view;
 }

 @Override
 public void destroyItem(View arg0, int arg1, Object arg2) {
  ((ViewPager) arg0).removeView((View) arg2);
 }

 @Override
 public boolean isViewFromObject(View arg0, Object arg1) {
  return arg0 == ((View) arg1);
 }

 @Override
 public Parcelable saveState() {
  return null;
 }
}

 

이건 xml

<com.example.redcarpetwall.ImageSlidePager
     android:id="@+id/imageSlidePager1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content" >
 </com.example.redcarpetwall.ImageSlidePager>

 

 

귀찮아서 그냥 다 복불 ㅎㅎ

 

나중에 시간 되면 정리해야겠다.

 

참고한 사이트

이미지 슬라이드 : http://androidtrainningcenter.blogspot.kr/2012/10/viewpager-example-in-android.html


 

 

Posted by 동동(이재동)
Android App2014. 8. 27. 11:48

 public static boolean isApplicationSentToBackground(final Context context) {
      ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
      List<RunningTaskInfo> tasks = am.getRunningTasks(1);
      if (!tasks.isEmpty()) {
        ComponentName topActivity = tasks.get(0).topActivity;
        if (!topActivity.getPackageName().equals(context.getPackageName())) {
          return true;
        }
      }

      return false;
    }

 

onPause()를 오버라이드 해서

 

 

boolean temp = isApplicationSentToBackground(this);

 

사용하면 된다.

 

true일때는 사용자가  홈버튼을 눌렀을때 혹은 앱을 나갔을때

 

false일때는 나가지 않고 activity로 이동

Posted by 동동(이재동)