Professional Documents
Culture Documents
Thiết kế database
Loại sản Phẩm Thông tin sản phẩm
Id loại Sp(int) ID
Tên loại SP(varchar) Tên sp
Hình loại sp Giá
Hình
Mô tả
Id loại sản phẩm
package com.example.storemobile;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.ViewFlipper;
import com.google.android.material.navigation.NavigationView;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
Picasso.with(getApplicationContext()).load(mangquangcao.get(i)).into(imageView
);
//canh vừa với viewflipper.
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
viewFlipper.addView(imageView);
}
//để viewflipper tự chạy.
viewFlipper.setFlipInterval(5000);
viewFlipper.setAutoStart(true);
//khởi tạo.
Animation animation_in =
AnimationUtils.loadAnimation(getApplicationContext(),R.anim.slide_in_right);
Animation animation_out =
AnimationUtils.loadAnimation(getApplicationContext(),R.anim.slide_out_right);
viewFlipper.setInAnimation(animation_in);
viewFlipper.setOutAnimation(animation_out);
}
Layout.xml
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context="com.example.storemobile.MainActivity">
<androidx.drawerlayout.widget.DrawerLayout
android:id="@+id/DrawerLayout_home"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar_home"
android:background="#0FF0DB"
app:title="Home"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize">
</androidx.appcompat.widget.Toolbar>
<ViewFlipper
android:background="#8033b5e5"
android:id="@+id/ViewFlipper_home"
android:layout_width="match_parent"
android:layout_height="200dp">
</ViewFlipper>
<LinearLayout
android:background="#0f0"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:textStyle="bold"
android:textSize="20sp"
android:layout_margin="5dp"
android:textColor="#DD190A"
android:text="Sản Phẩm mới nhất"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/RecyclerView_home"
android:layout_width="match_parent"
android:layout_height="match_parent">
</androidx.recyclerview.widget.RecyclerView>
</LinearLayout>
</LinearLayout>
<com.google.android.material.navigation.NavigationView
android:id="@+id/NavigationView_home"
android:layout_width="match_parent"
android:layout_gravity="start"
android:layout_height="match_parent">
<ListView
android:id="@+id/ListView_home"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</com.google.android.material.navigation.NavigationView>
</androidx.drawerlayout.widget.DrawerLayout>
</LinearLayout>
Right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:duration ="2000"
android:fromXDelta="-100%"
android:toXDelta="0%"
/>
<alpha android:duration="2000"
android:fromAlpha="0.0"
android:toAlpha="1.0"/>
</set>
Left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:duration ="2000"
android:fromXDelta="0%"
android:toXDelta="-100%"
/>
<alpha android:duration="2000"
android:fromAlpha="1.0"
android:toAlpha="0.0"/>
</set>
4. ListView menu:
Nằm ngay chung một hàng dùng horizontal.
Dong_listview_loaisp.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:weightSum="10">
<LinearLayout
android:layout_weight="3"
android:layout_width="0dp"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/ImageView_loaisp"
android:src="@color/cardview_dark_background"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_margin="5dp"/>
</LinearLayout>
<LinearLayout
android:layout_weight="7"
android:layout_width="0dp"
android:layout_height="wrap_content">
<TextView
android:layout_margin="5dp"
android:id="@+id/TexviewLoaisp"
android:textSize="25sp"
android:text="Android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
Loaisp.java
package com.example.storemobile.model;
loaispadapter.java
package com.example.storemobile.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.storemobile.R;
import com.example.storemobile.model.Loaisp;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
@Override
public int getCount() {
return arrayListLoaisp.size();
}
@Override
public Object getItem(int position) {
return arrayListLoaisp.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder viewHolder;
if(convertView == null){
viewHolder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView =
inflater.inflate(R.layout.dong_listview_loaisp,null);
viewHolder.txtTenloaisp =
convertView.findViewById(R.id.TexviewLoaisp);
viewHolder.imgLoaisp =
convertView.findViewById(R.id.ImageView_loaisp);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) convertView.getTag();
Loaisp loaisp = (Loaisp) getItem(position);
viewHolder.txtTenloaisp.setText(loaisp.getTenLoaisp());
Picasso.with(context).load(loaisp.getHinhLoaisp())
.placeholder(R.drawable.ic_launcher_background)
.error(R.drawable.ic_launcher_foreground)
.into(viewHolder.imgLoaisp);
}
return convertView;
}
}
ArrayList<Loaisp> mangloaisp;
Loaispadapter loaispadapter;
Ánh xạ
mangloaisp = new ArrayList<>();
loaispadapter = new Loaispadapter(mangloaisp,getApplicationContext());
listViewhome.setAdapter(loaispadapter);
5. Check connect
Android – detect wherer there is an internet connect available
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
package com.example.storemobile.ultil;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.widget.Toast;
ConnectivityManager cm = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
for (NetworkInfo ni : netInfo) {
if (ni.getTypeName().equalsIgnoreCase("WIFI"))
if (ni.isConnected())
haveConnectedWifi = true;
if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
if (ni.isConnected())
haveConnectedMobile = true;
}
return haveConnectedWifi || haveConnectedMobile;
}
public static void Showtoast_short(Context context,String
information){
Toast.makeText(context, information, Toast.LENGTH_SHORT).show();
}
}
Getloaisp.php
<?php
include "connectdatabase.php";
$query = "SELECT * FROM loaisanpham";
$data = mysqli_query($connect,$query);
//tạo class
class Loaisp{
//tạo contructor dạng API
function Loaisp($id,$tenLoaisp,$hinhanhLoaisp){
$this -> id = $id;
$this -> tenLoaisp = $tenLoaisp;
$this -> hinhanhLoaisp = $hinhanhLoaisp;
}
}
7. Phụ lục
a. Tắt ActionBar
Vào res >>values >>style.xml
<resources>
</resources>