Membuat Tulisan Berjalan - Marquee - di Android

Pada seri tutoial android kali ini kita akan belajar bagaiman cara menampilkan text bergerak di android. Kalau yang sering buat web pasti tahu yang namanya marquee. Marquee adalah tag yang digunakan untuk menmpilkan tulisan bergerak pada halaman web, biasanya digunakan untuk menampilkan informasi penting. Tentunya kita berfikir, bisa nggak yah kita buat tulisan bergerak diandroid. Yang paling mudah adalah cari digoogle siapa tahu ada yang pernah share.
Sekarang mari kita buat aplikasinya
1. Buat project dengan nama “LearnMarquee


 2.Siapkan layout untuk aplikasi kta, untuk itu Edit activity_main.xml lalu ketikan kode berikut

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${packageName}.${activityClass}" >

    <LinearLayout
        android:id="@+id/ticker_area"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#00FF00"
        android:orientation="horizontal" >
    </LinearLayout>

    <LinearLayout
        android:id="@+id/ticker_area2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/ticker_area"
        android:background="#9CB1DD"
        android:orientation="horizontal" >
    </LinearLayout>

</RelativeLayout>

3. Sekarang kita masuk ke otak dari aplikasi kita, Edit MainActivity.java lalu ketikan kode berikut

package net.masdadijaenudin.learnmarquee;

import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.LinearLayout;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LinearLayout ticker_area1 = (LinearLayout) findViewById(R.id.ticker_area);
        LinearLayout ticker_area2 = (LinearLayout) findViewById(R.id.ticker_area2);
        setticker(ticker_area1, "Orang tua bahagia kalau anaknya lulus kuliah tepat waktu dengan nilai yang baik", this);
        setticker(ticker_area2, "Calon Mertua juga akan bangga punya menantu yang baik agamanya dan mapan kehidupannya", this);
    }

    public  void setticker(LinearLayout parent_layout, String text, Context contx) {
        if (text != "") {

            TextView view = new TextView(contx);
            view.setText(text);

            view.setTextColor(Color.BLACK);
            view.setTextSize(25.0F);
            Context context = view.getContext(); // gets the context of the view

            // measures the unconstrained size of the view
            // before it is drawn in the layout
            view.measure(View.MeasureSpec.UNSPECIFIED,
                    View.MeasureSpec.UNSPECIFIED);

            // takes the unconstrained width of the view
            float width = view.getMeasuredWidth();
            float height = view.getMeasuredHeight();

            // gets the screen width
            float screenWidth = ((Activity) context).getWindowManager()
                    .getDefaultDisplay().getWidth();

            view.setLayoutParams(new LinearLayout.LayoutParams((int) width,
                    (int) height, 1f));

            System.out.println("width and screenwidth are" + width + "/"
                    + screenWidth + "///" + view.getMeasuredWidth());

            // performs the calculation
            float toXDelta = width - (screenWidth - 0);

            // sets toXDelta to -300 if the text width is smaller that the
            // screen size
            if (toXDelta < 0) {
                toXDelta = 0 - screenWidth;// -300;
            } else {
                toXDelta = 0 - screenWidth - toXDelta;// -300 - toXDelta;
            }
            // Animation parameters
            Animation mAnimation = new TranslateAnimation(screenWidth,
                    toXDelta, 0, 0);
            mAnimation.setDuration(15000);
            mAnimation.setRepeatMode(Animation.RESTART);
            mAnimation.setRepeatCount(Animation.INFINITE);
            view.setAnimation(mAnimation);
            parent_layout.addView(view);
        }
    }

}

4. Mari kita jalankan programnya

Nah gampangkan buat marquee text di android
Semoga Bermanfaat

0 Response to "Membuat Tulisan Berjalan - Marquee - di Android"

Posting Komentar