안드로이드 스튜디오 이미지 버튼으로 다른 앱 실행시키기

안녕하세요 오늘은 이미지 버튼을 이용해서 버튼 클릭 시

 

타 앱이 실행되도록 해보겠습니다.

 

간혹 어플을 보면 링크도 있지만 다른앱으로 연결해서 실행시키는 기능이 있습니다

 

예를 들면 해당앱에서 버튼을 누르면

 

ex)인스타,트위터가 켜지도록 하는 기능이 있습니다.

 

구현해보겠습니다.

 

일단 레이아웃을 꾸며줍니다. 레이아웃은 개발하시는 분 성향에 따라 다르니

 

원하시는 레이아웃을 잘 꾸며주시면 됩니다.

 

저는 디자인 감각이 없어서 그냥 기능만 잘 구현

 

하도록 대충? 꾸미겠습니다. 

 

밑에는 제 레이아웃입니다. 기능 구현이기 때문에 UI가 너무 허접한 점 죄송합니다..

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:background="#000">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="아이콘누르면 해당앱켜지기"
            android:textColor="#fff"
            android:textSize="35dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="인스타 아이콘"
            android:textSize="20dp"
            android:layout_gravity="center"/>

        <ImageButton
            android:id="@+id/instaicon"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_marginLeft="30dp"
            android:layout_marginTop="25dp"
            android:background="@mipmap/instaicon" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="트위터 아이콘"
            android:textSize="20dp"
            android:layout_gravity="center"/>
        <ImageButton
            android:id="@+id/witterbtn"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_marginLeft="30dp"
            android:layout_marginTop="30dp"
            android:background="@mipmap/twittericon" />
    </LinearLayout>
</LinearLayout>

위에 레이아웃처럼 코딩하시면 밑에처럼 나오실겁니다.

 

이미지 버튼이기 때문에 이미지를 준비해두세요!

 

레이아웃

 

이제 아이콘 두 개를 만들었으니 각각 누를 때 그 앱이 실행이 되도록 코딩하겠습니다.

 

public class MainActivity extends AppCompatActivity {
    private Intent intent;
    private Intent intent1;
    private final String packageName = "com.twitter.android";
    private final String packageNames = "com.instagram.android";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        intent1 = this.getPackageManager().getLaunchIntentForPackage(packageName);
        ImageButton imageButtonss = (ImageButton) findViewById(R.id.witterbtn);
        imageButtonss.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                MainActivity.this.startActivity(intent1);
            }
        });


        intent = this.getPackageManager().getLaunchIntentForPackage(packageNames);
        ImageButton imageButtons = (ImageButton) findViewById(R.id.instaicon);
        imageButtons.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                MainActivity.this.startActivity(intent);
            }
        });
    }
}

정말 간단하게 코딩을 하여 구현할 수 있습니다.

 

위에 설정으로 패키 지명을 입력하여 실행하도록 설정했습니다.

 

패키지명이 바뀌면 안 됩니다.

 

(각 앱에는 패키 지명이 존재 합니다.)

 

수고하셨습니다.

댓글

Designed by JB FACTORY