Rabu, 17 Juni 2015

Belajar Android Membuat Tulisan Berjalan - Marquee

Belajar Android lagi yuk, walaupun masih suasana lebaran teta[ harus semangat. 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

01<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
02    xmlns:tools="http://schemas.android.com/tools"
03    android:layout_width="match_parent"
04    android:layout_height="match_parent"
05    tools:context="${packageName}.${activityClass}" >
06 
07    <LinearLayout
08        android:id="@+id/ticker_area"
09        android:layout_width="match_parent"
10        android:layout_height="wrap_content"
11        android:background="#00FF00"
12        android:orientation="horizontal" >
13    </LinearLayout>
14 
15    <LinearLayout
16        android:id="@+id/ticker_area2"
17        android:layout_width="match_parent"
18        android:layout_height="wrap_content"
19        android:layout_alignParentLeft="true"
20        android:layout_below="@+id/ticker_area"
21        android:background="#9CB1DD"
22        android:orientation="horizontal" >
23    </LinearLayout>
24 
25</RelativeLayout>
3. Sekarang kita masuk ke otak dari aplikasi kita, Edit MainActivity.java lalu ketikan kode berikut

01package net.agusharyanto.learnmarquee;
02 
03import android.app.Activity;
04import android.content.Context;
05import android.graphics.Color;
06import android.os.Bundle;
07import android.view.View;
08import android.view.animation.Animation;
09import android.view.animation.TranslateAnimation;
10import android.widget.LinearLayout;
11import android.widget.TextView;
12 
13public class MainActivity extends Activity {
14 
15    @Override
16    protected void onCreate(Bundle savedInstanceState) {
17        super.onCreate(savedInstanceState);
18        setContentView(R.layout.activity_main);
19        LinearLayout ticker_area1 = (LinearLayout) findViewById(R.id.ticker_area);
20        LinearLayout ticker_area2 = (LinearLayout) findViewById(R.id.ticker_area2);
21        setticker(ticker_area1, "Orang tua bahagia kalau anaknya lulus kuliah tepat waktu dengan nilai yang baik", this);
22        setticker(ticker_area2, "Calon Mertua juga akan bangga punya menantu yang baik agamanya dan mapan kehidupannya", this);
23    }
24 
25    public  void setticker(LinearLayout parent_layout, String text, Context contx) {
26        if (text != "") {
27 
28            TextView view = new TextView(contx);
29            view.setText(text);
30 
31            view.setTextColor(Color.BLACK);
32            view.setTextSize(25.0F);
33            Context context = view.getContext(); // gets the context of the view
34 
35            // measures the unconstrained size of the view
36            // before it is drawn in the layout
37            view.measure(View.MeasureSpec.UNSPECIFIED,
38                    View.MeasureSpec.UNSPECIFIED);
39 
40            // takes the unconstrained width of the view
41            float width = view.getMeasuredWidth();
42            float height = view.getMeasuredHeight();
43 
44            // gets the screen width
45            float screenWidth = ((Activity) context).getWindowManager()
46                    .getDefaultDisplay().getWidth();
47 
48            view.setLayoutParams(new LinearLayout.LayoutParams((int) width,
49                    (int) height, 1f));
50 
51            System.out.println("width and screenwidth are" + width + "/"
52                    + screenWidth + "///" + view.getMeasuredWidth());
53 
54            // performs the calculation
55            float toXDelta = width - (screenWidth - 0);
56 
57            // sets toXDelta to -300 if the text width is smaller that the
58            // screen size
59            if (toXDelta < 0) {
60                toXDelta = 0 - screenWidth;// -300;
61            } else {
62                toXDelta = 0 - screenWidth - toXDelta;// -300 - toXDelta;
63            }
64            // Animation parameters
65            Animation mAnimation = new TranslateAnimation(screenWidth,
66                    toXDelta, 0, 0);
67            mAnimation.setDuration(15000);
68            mAnimation.setRepeatMode(Animation.RESTART);
69            mAnimation.setRepeatCount(Animation.INFINITE);
70            view.setAnimation(mAnimation);
71            parent_layout.addView(view);
72        }
73    }
74 
75}

4. Mari kita jalankan programnya

Tidak ada komentar:

Posting Komentar