Справочник рыбака. (Код уроков)

MainActivity

import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;

import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;

import com.google.android.material.navigation.NavigationView;
import com.neco_desarrollo.fisher_hanbook.settings.SettingsActivity;
import com.neco_desarrollo.fisher_hanbook.utils.CustomArrayAdapter;
import com.neco_desarrollo.fisher_hanbook.utils.ListItemClass;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
private ListView list;
private String[] array, arraySecName;
private CustomArrayAdapter adapter;
private Toolbar toolbar;
private int category_index;
//private int[] array_fish_color = new int []{R.color.green_2, R.color.yellow, R.color.green_2, R.color.red,R.color.red};
private List<ListItemClass> listItemMain;
private ListItemClass listItem;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);


list = findViewById(R.id.listView);
listItemMain = new ArrayList<>();

fillArray(R.string.fish, getResources().getStringArray(R.array.fish_array), getResources().getStringArray(R.array.fish_array_2), 0);
adapter = new CustomArrayAdapter(this, R.layout.list_view_item_1, listItemMain, getLayoutInflater());
list.setAdapter(adapter);

DrawerLayout drawer = findViewById(R.id.drawer_layout);
NavigationView navigationView = findViewById(R.id.nav_view);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
navigationView.setNavigationItemSelectedListener(this);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(MainActivity.this, Text_Content_Activity.class);
intent.putExtra("category", category_index);
intent.putExtra("position", position);
startActivity(intent);

}
});


}

@Override
public void onBackPressed() {
DrawerLayout drawer = findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
toolbar.setTitle(R.string.fish);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();

//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {

Intent i = new Intent(MainActivity.this, SettingsActivity.class);
startActivity(i);

}

return super.onOptionsItemSelected(item);
}


@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();

if (id == R.id.id_fish) {

fillArray(R.string.fish, getResources().getStringArray(R.array.fish_array), getResources().getStringArray(R.array.fish_array_2), 0);
} else if
(id == R.id.id_na) {
fillArray(R.string.fish, getResources().getStringArray(R.array.sna_array), getResources().getStringArray(R.array.sna_array), 0);

} else if (id == R.id.id_sna) {

} else if (id == R.id.id_pri) {

} else if (id == R.id.id_history) {

} else if (id == R.id.id_advice) {

}

DrawerLayout drawer = findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}

private void fillArray(int title, String[] nameArray, String[] secName, int index) {

toolbar.setTitle(title);
if (adapter != null) adapter.clear();

for (int i = 0; i < nameArray.length; i++) {
listItem = new ListItemClass();
listItem.setNameF(nameArray[i]);
listItem.setSecond_name(secName[i]);
// listItem.setImage_id(image[i]);

listItemMain.add(listItem);
}
if (adapter != null) adapter.notifyDataSetChanged();
category_index = index;
}
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout 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:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"

tools:openDrawer="start">
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />


<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
</androidx.drawerlayout.widget.DrawerLayout>

LogoActivity

public class Logo_Activity extends Activity {
//Cоздаем переменные для нашей анимации
private Animation logoAnim, buttonLogoAnim;
private String TAG = "MyLog";
// private Button bAnim;

private ImageView logoImage;

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

init();
startMainActivity();


}

private void init() {
// Загружаем анимации в переменный
logoAnim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.alpha_anim);

buttonLogoAnim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.button_anim);


logoImage = findViewById(R.id.logoView);
// bAnim = findViewById(R.id.buttonAnim);
//Запускаем анимацию
logoImage.startAnimation(logoAnim);
//bAnim.startAnimation(buttonLogoAnim);

}

public void onClickStart(View view) {

Intent i = new Intent(Logo_Activity.this, MainActivity.class);
startActivity(i);

}

@Override
protected void onDestroy() {
super.onDestroy();
finish();
}

private void startMainActivity() {
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}

Intent i = new Intent(Logo_Activity.this, MainActivity.class);
startActivity(i);
}
}).start();

}
}

LogoActivity

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:background="@color/black">

<ImageView
android:id="@+id/logoView"
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="124dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:background="@color/black"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.494"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:srcCompat="@drawable/logo_fish"
android:src="@drawable/logo_fish"/>

<Button
android:id="@+id/buttonAnim"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="76dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:background="@color/design_default_color_primary"
android:onClick="onClickStart"
android:text="@string/button_start"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/logoView" />
</androidx.constraintlayout.widget.ConstraintLayout>

Text_Content_Activity

import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Typeface;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;

public class Text_Content_Activity extends AppCompatActivity {

private ActionBar actionBar;
private TextView text_content;
private Typeface face1;
private ImageView iContent;
private SharedPreferences def_pref;
private int category = 0;
private int position = 0;
private int[] array_fish = {R.string.karp, R.string.schuca, R.string.som, R.string.osetr, R.string.nalim};
private int[] array_na = {R.string.na_1, R.string.na_2, R.string.na_3, R.string.na_4};
private int[] array_image_fish = {R.drawable.karp, R.drawable.shuca, R.drawable.som, R.drawable.osetr, R.drawable.nalim};
private String[] array_title_fish = {"Карп", "Щука", "Сом", "Осетр", "Налим"};

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


reciveIntent();


}


private void reciveIntent() {
Intent i = getIntent();
if (i != null) {
category = i.getIntExtra("category", 0);
position = i.getIntExtra("position", 0);
}
switch (category) {
case 0:

iContent.setImageResource(array_image_fish[position]);
text_content.setText(array_fish[position]);
actionBar.setTitle(array_title_fish[position]);

break;
case 1:
text_content.setText(array_na[position]);
iContent.setImageResource(array_image_fish[position]);
break;
case 2:

break;
case 3:

break;
case 4:

break;
case 5:

break;
}
}

private void init() {
def_pref = PreferenceManager.getDefaultSharedPreferences(this);
text_content = findViewById(R.id.text_main_content);
iContent = findViewById(R.id.imageContent);
face1 = Typeface.createFromAsset(this.getAssets(), "fonts/Lobster-Regular.ttf");
text_content.setTypeface(face1);
actionBar = getSupportActionBar();
assert actionBar != null;
actionBar.setDisplayHomeAsUpEnabled(true);
String text = def_pref.getString("main_text_size", "Средний");
if (text != null) {
switch (text) {
case "Большой":
text_content.setTextSize(24);
break;
case "Средний":
text_content.setTextSize(18);
break;
case "Маленький":
text_content.setTextSize(14);
break;

}
}

}

}

text_content.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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">

<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="8dp"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@color/colorPrimary"
android:orientation="horizontal">

<ImageView
android:id="@+id/imageContent"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/carp2"
tools:srcCompat="@drawable/carp2" />

</LinearLayout>

<TextView
android:id="@+id/text_main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:text="thrthsthfthsfhsxdth"
android:textSize="14sp" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginTop="10dp"
android:background="@color/colorPrimary"
android:orientation="horizontal">

</LinearLayout>

</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

CustomArrayAdapter

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.neco_desarrollo.fisher_hanbook.R;
import java.util.ArrayList;
import java.util.List;


public class CustomArrayAdapter extends ArrayAdapter<ListItemClass> {
private LayoutInflater inflater;
private List<ListItemClass> listItem = new ArrayList<>();

public CustomArrayAdapter(@NonNull Context context, int resource, List<ListItemClass> listItem,LayoutInflater inflater) {
super(context, resource, listItem);
this.inflater = inflater;
this.listItem = listItem;
}

@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
ViewHolder viewHolder;
ListItemClass listItemMain = listItem.get(position);
if(convertView == null){
convertView = inflater.inflate(R.layout.list_view_item_1, null, false);
viewHolder = new ViewHolder();
viewHolder.image = convertView.findViewById(R.id.imItem);
viewHolder.name = convertView.findViewById(R.id.tvName);
viewHolder.secName = convertView.findViewById(R.id.tvSecName);
convertView.setTag(viewHolder);
}
else
{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.name.setText(listItemMain.getNameF());
viewHolder.secName.setText(listItemMain.getSecond_name());
viewHolder.image.setImageResource(listItemMain.image_id);
return convertView;
}
private class ViewHolder{
TextView name;
TextView secName;
ImageView image;

}
}

list_view_item_1.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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">

<TextView
android:id="@+id/tvName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="TextView"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.131"
app:layout_constraintStart_toEndOf="@+id/imItem"
app:layout_constraintTop_toTopOf="parent" />

<ImageView
android:id="@+id/imItem"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@color/colorPrimary" />

<TextView
android:id="@+id/tvSecName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="52dp"
android:layout_marginLeft="52dp"
android:layout_marginTop="16dp"
android:text="TextView"
android:textColor="@color/design_default_color_primary_dark"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.463"
app:layout_constraintStart_toEndOf="@+id/imItem"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

ListItemClass

public class ListItemClass {
String name;
String second_name;
int image_id;

public String getNameF() {
return name;
}

public void setNameF(String name) {
this.name = name;
}

public String getSecond_name() {
return second_name;
}

public void setSecond_name(String second_name) {
this.second_name = second_name;
}

public int getImage_id() {
return image_id;
}

public void setImage_id(int image_id) {
this.image_id = image_id;
}
}

SettingsActivity

import android.os.Bundle;
import android.view.MenuItem;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import com.neco_desarrollo.fisher_hanbook.R;

public class SettingsActivity extends AppCompatActivity {
private ActionBar actionBar;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

if (getSupportActionBar() != null) {
actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setTitle(getString(R.string.action_settings));

}
// Заменяем основной контент на наш фрагмент.
getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
}
return true;

}
}

SettingsFragment

import android.os.Bundle;
import android.preference.PreferenceFragment;
import androidx.annotation.Nullable;
import com.neco_desarrollo.fisher_hanbook.R;

public class SettingsFragment extends PreferenceFragment {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preference_screen);
}
}

preference_screen.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

<PreferenceCategory android:title="Настройки текста">

</PreferenceCategory>
<ListPreference
android:defaultValue="Средний"
android:entries="@array/main_text_size_array"
android:entryValues="@array/main_text_size_array"
android:key="main_text_size"
android:title="@string/main_text_size" />
</PreferenceScreen>

app_bar_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout 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=".MainActivity">

<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">

<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />

</com.google.android.material.appbar.AppBarLayout>

<include layout="@layout/content_main" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

content_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".MainActivity"
tools:showIn="@layout/app_bar_main">

<ListView
android:id="@+id/listView"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

nav_header_main.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"
android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height"
android:background="@color/design_default_color_primary"
android:gravity="bottom"
android:orientation="vertical"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:theme="@style/ThemeOverlay.AppCompat.Dark">

<ImageView
android:id="@+id/imageView"
android:layout_width="90dp"
android:layout_height="90dp"
android:contentDescription="@string/nav_header_desc"
android:paddingTop="@dimen/nav_header_vertical_spacing"
app:srcCompat="@drawable/fish_header" />

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:text="@string/nav_header_title"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textColor="@color/green"
android:textSize="18sp" />

</LinearLayout>

strings.xml

<resources>
<string name="app_name">Fisherman_Hanbook</string>
<string name="navigation_drawer_open">Open navigation drawer</string>
<string name="navigation_drawer_close">Close navigation drawer</string>
<string name="nav_header_title">Справочник рыбака</string>
<string name="nav_header_subtitle">android.studio@android.com</string>
<string name="nav_header_desc">Navigation header</string>
<string name="action_settings">Настройки</string>
<string name="main_text_size">Размер главного текста</string>

<string name="fish">Рыба</string>
<string name="na">Наживка</string>
<string name="sna">Снасти</string>
<string name="pri">Прикормка</string>
<string name="history">Рыбацкие истории</string>
<string name="advice">Полезные советы </string>
<string name="som">Обыкнове́нный сом[1], или европе́йский сом[1] (лат. Silurus glanis) — крупная[2] пресноводная бесчешуйчатая рыба семейства сомовых (Siluridae).

Длина тела до 5 м, вес до 400 кг (по историческим данным)[3]. Л. П. Сабанеев приводит сведения Кесслера о поимке сомов весом более 300 кг в XIX веке, в Днепре, Днестре и Одере[4].
Официально зарегистрирован пойманный сом весом 306 кг, длиной более 3 м и возрастом около 80 лет[5]. Сейчас сомы весом выше 100 кг встречаются крайне редко, тем не менее
зарегистрированы случаи поимки сомов длиной более 2,5 м и весом около 150 кг[6]. Анальный плавник длинный, жировой плавник отсутствует, непарные плавники не имеют шипов.

Окрас в большинстве случаев бурый с оттенками коричнево-зелёного, брюхо белое. В зависимости от мест обитания окрас может меняться от почти чёрного до светло-жёлтого. Иногда,
очень редко, встречаются сомы альбиносы.

Обитает в реках и озёрах Европы и Европейской части России, кроме бассейна Ледовитого океана. Обычен в Европе и в бассейне Аральского моря.

Икрометание весной в прибрежной зоне среди водной растительности. Самка откладывает икру в гнездо, которое самец охраняет. Половозрелость обычно на пятом году жизни.
В Волге можно встретить особей, масса тела которых достигает около 50 кг[9]. Наиболее крупные сомы (весом более 100 кг) иногда вылавливаются рыбаками в Испании, в р. Эбро,
где они были акклиматизированы в середине XX века и быстро размножились[2].

Во многих регионах распространён способ ловли сома на квок.

Сома издавна употребляли в пищу, преимущественно в жареном виде, хотя В. И. Даль в книге «О поверьях, суевериях и предрассудках русского народа» (1845-1846) утверждал, что крестьяне южнорусских губерний и донские казаки его мясом брезговали, называя «чёртовым конём», используя лишь жирный хвост в качестве начинки для пирогов[10].

Примечателен факт, что мусульмане не едят рыбу без чешуи (в том числе и сомов), что вплоть до середины XX века способствовало лучшему сохранению численности сомов в мусульманских регионах.[источник не указан 419 дней] </string>
<string name="schuca">Щука[1], или обыкновенная щука[1], (лат. Esox lucius) — рыба семейства щуковых. Распространена в пресных водах Евразии и Северной Америки.
Живёт обычно в прибрежной зоне, в водных зарослях, в непроточных или слабопроточных водах. Может также встречаться и в опреснённых частях морей, например в Финском,
Рижском и Куршском заливах Балтийского моря, в Таганрогском заливе Азовского моря. Щука хорошо выдерживает кислую реакцию воды, может комфортно жить в водоёмах с pH 4,75.
При снижении содержания кислорода до 3,0—2,0 мг/л наступает угнетение дыхания, поэтому в заморных водоёмах щука зимой часто погибает. </string>
<string name="karp">Большинство видов рода обитают на юге Китая и в Юго-Восточной Азии. Исключение составляют два вида. Первый — обыкновенный сазан (Cyprinus carpio),
имевший естественный ареал, состоявший из двух частей: водоемы Понто-Каспийско-Аральского и дальневосточного регионов[1]. Он был расселён в водоёмах Северной Америки,
Австралии и Евразии за пределами естественного ареала, одомашнен, из него выведены породы карпа, разводимые в прудах. Второй — серебристый карп, завезенный в 1970-е в
Канаду и США из озера Балхаш (Казахстан) и сильно размножившийся в отсутствие внешних врагов и отлова (из-за обилия костей американцы его не едят). В случае попадания
серебристого карпа в Великие озера это грозит уничтожением промысловых рыб местных пород и исчезновением промыслового рыболовства, поэтому на Чикагском канале построен
электрический барьер[2][3][4].

Взрослая особь достигает в длину 40-80 см, а масса взрослого карпа 2-14 кг. </string>
<string name="nalim">Тело удлиненное, невысокое, округлое в передней части и сильно сжатое с боков — в задней. Голова уплощена, её длина превышает максимальную высоту тела.
Глаз маленький. Рот большой, полунижний, нижняя челюсть короче верхней. На челюстях и головке сошника имеются мелкие щетинковидные зубы, но на нёбе их нет. На подбородке
имеется один непарный усик (составляющий 20—30 % длины головы) и пара усиков на верхней челюсти[6][9].

Окраска тела налима зависит от характера грунта, прозрачности и освещенности воды, а также от возраста рыбы, поэтому она довольно разнообразна: чаще темно-бурая или черновато-серая,
светлеющая с возрастом. На боках тела и непарных плавниках имеются большие светлые пятна. Форма и размер пятен могут варьироваться. Брюхо и плавники светлые[6][9].

Спинных плавников два: первый из них короткий, второй — длинный. Анальный также длинный. Вместе со вторым спинным они вплотную подходят к хвостовому, но не соединяются с ним. Грудные
плавники округлые. Брюшные расположены на горле, впереди грудных. Второй луч брюшного плавника вытянут в длинную нить, снабженную чувствительными клетками, как на усике. Хвостовой
плавник округлый. Чешуя циклоидная, очень мелкая, полностью покрывает всё тело и часть головы сверху до ноздрей и жаберной крышки. Боковая линия полная до начала хвостового стебля,
далее к хвосту может прерываться[6][9].

Длина тела может доходить до 120 см. В различных водоемах линейный рост происходит неодинаково. Так, наилучшими показателями роста и массы тела характеризуется налим Обского бассейна,
близок к нему по темпам линейного роста налим Вилюя. Наиболее крупные особи — до 18 кг — отмечены в реке Лена[10]. </string>
<string name="osetr">Длина тела до 6 м (атлантический[3] и белый осетры[4]), масса — до 816 кг (белый осётр)[4].

Род осетры характеризуется следующими признаками: продольные ряды костяных щитков-жучек не сливаются между собой на хвосте; брызгальца есть, лучи хвостового плавника огибают конец хвоста.

Сюда относится 19 видов[5] по большой части крупных рыб северного умеренного пояса, из которых некоторые достигают весьма значительных размеров. Большая часть видов — рыбы проходные, входящие
весной из морей в реки для нереста, некоторые виды также и осенью на зимовку. Некоторые виды — пресноводные, живущие в реках или входящие в реки для нереста из озёр, в которых живут
обыкновенно. Область распространения рода Acipenser включает Евразию и Северную Америку.

Некоторые виды (атлантический осётр (Acipenser sturio), а также по Гюнтеру американский осётр — A. maculatus) обладают весьма обширной областью распространения, так как водятся и в Европе,
и в Америке (по отношению к A. maculatus явление это носит, по-видимому, случайный характер: он иногда заплывает в европейские воды, но А. sturio встречается и в Европе и в Америке).

Осетры держатся преимущественно у дна, питаются рыбой, моллюсками, червями и т. д. Плодовитость у крупных рыб может доходить до нескольких миллионов икринок. При этом масса икры перед нерестом
составляет до 25 % общей массы тела. Несмотря на такую громадную плодовитость, многие виды находятся под угрозой исчезновения, вследствие беспощадного и неосмотрительного лова. В Каспийском
море сосредоточено 90 % мирового запаса осетров. </string>

<string name="na_1">Наживка 1 </string>
<string name="na_2">Наживка 2 </string>
<string name="na_3">Наживка 3 </string>
<string name="na_4">Наживка 4 </string>
<string name="button_start">Start</string>


</resources>

styles.xml

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowFullscreen">true</item>



</style>

<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />


</resources>

alpha_anim.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</set>

button_anim.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="800">
<translate
android:fromXDelta="-1000"
android:toXDelta="0" />
</set>

logo_anim.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="800" >
<scale
android:fromXScale="0.0"
android:fromYScale="0.0"
android:toXScale="1.0"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"/>
</set>

arrays.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="fish_array">
<item>Карп</item>
<item>Щука</item>
<item>Сом</item>
<item>Осетр</item>
<item>Налим</item>
<item>На</item>
<item>Нал</item>
<item>Нали</item>
<item>алим</item>
<item>лим</item>
<item>им</item>
<item>м</item>
<item>Налим</item>
<item>На</item>
<item>лим</item>
<item>Нм</item>
<item>На</item>
<item>лим</item>
</string-array>
<string-array name="fish_array_2">
<item>Карпиус</item>
<item>Щукариус</item>
<item>Сомариус</item>
<item>Осетрариус</item>
<item>Налимиус</item>
<item>Налимиус</item>
<item>Налимиус</item>
<item>Налимиус</item>
<item>Налимиус</item>
<item>Налимиус</item>
<item>Налимиус</item>
<item>Налимиус</item>
<item>Налимиус</item>
<item>Налимиус</item>
<item>Налимиус</item>
<item>Налимиус</item>
<item>Налимиус</item>
<item>Налимиус</item>
</string-array>

<string-array name="na_array">
<item>Червяк</item>
<item>Кукуруза</item>
<item>Хлеб</item>
<item>Рис</item>
</string-array>
<string-array name="sna_array">
<item>Грузила</item>
<item>Крючки</item>
<item>Леска</item>
<item>Блесна</item>
</string-array>
<string-array name="pri_array">
<item>Кукуруза</item>
<item>Хлеб</item>
<item>Рис</item>

</string-array>
<string-array name="history_array">
<item>Рыбак и море</item>
<item>Рыбак и щюка</item>
<item>На дону</item>
<item>Случай на рыбалке</item>

</string-array>
<string-array name="advice_array">
<item>Советы по прикормке</item>
<item>Сезон рыбалки</item>
<item>На что клюет</item>
<item>Большой улов</item>

</string-array>
<string-array name="main_text_size_array">
<item>Большой</item>
<item>Средний</item>
<item>Маленький</item>

</string-array>


</resources>

colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#002C85</color>
<color name="colorPrimaryDark">#00574B</color>
<color name="colorAccent">#D81B60</color>
<color name="green">#74F668</color>
<color name="black">#202020</color>
<color name="red">#F10303</color>
<color name="yellow">#F3CB06</color>
<color name="green_2">#32D515</color>
</resources>

dimens.xml

<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="nav_header_vertical_spacing">8dp</dimen>
<dimen name="nav_header_height">176dp</dimen>
<dimen name="fab_margin">16dp</dimen>
</resources>

5 комментариев для “Справочник рыбака. (Код уроков)”

  1. ваш подход просто обескураживает и вызывает только положительные эмоции. большое спасибо. попробую освоить всю бесплатную часть и с удовольствием перейду на платную. большое спасибо за ваш труд и время.

  2. Да это просто клад для тех кто хочет научится, я так понял пока не пройду азы программирования не стоит покупать курс, а то там встрянешь и долго продеться азы догонять

  3. Здравствуйте NECO пожалуйста объясните где и как создать заглавие пжл! например LogoActivity styles.xml styles.xml button_anim.xml logo_anim.xml и тд. все заглавие пжл ждём брат из средней азии

  4. Здравствуйте NECO пожалуйста объясните где и как создать заглавие пжл! например LogoActivity styles.xml styles.xml button_anim.xml logo_anim.xml и тд. все заглавие пжл ждём брат из средней азии ваноувенлкндгш.жнршщэ.ншщ.шж

  5. апнолвеншу6е уенгшу56гу Здравствуйте NECO пожалуйста объясните где и как создать заглавие пжл! например LogoActivity styles.xml styles.xml button_anim.xml logo_anim.xml и тд. все заглавие пжл ждём брат из средней азии

Добавить комментарий для Сергей Отменить ответ

Ваш адрес email не будет опубликован.