2016-07-08 3 views
-3

Я новичок в Android. Мое маленькое приложение прекрасно работает, но его интерфейс выглядит уродливым. Не могли бы вы помочь мне сделать это лучше? Например: его изображение выглядит настолько большим, что мы можем сделать его немного меньше.UI не выглядит красивым

Это код фрагмента.

MainActivity.java

package com.example.hacback17.listviewwithimagesadvanced; 

import android.content.Context; 
import android.content.res.Resources; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.ImageView; 
import android.widget.ListView; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 

    ListView list; 
    String[] memeTitle; 
    String[] memeDescription; 
    // getting ids of images from drawable 
    int[] images = {R.drawable.number_one,R.drawable.number_two, R.drawable.number_three, R.drawable.number_four, R.drawable.number_five, 
      R.drawable.number_six, R.drawable.number_seven, R.drawable.number_eight, R.drawable.number_nine, R.drawable.number_ten}; 

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



     Resources resources = getResources(); 
     memeTitle = resources.getStringArray(R.array.titles); 
     memeDescription = resources.getStringArray(R.array.titles); 

     // Getting the reference of the ListView 
     list = (ListView) findViewById(R.id.listView); 

     MyAdapter adapter = new MyAdapter(this, memeTitle, images, memeDescription); 
     list.setAdapter(adapter); 
    } 
} 

// Custom ArrayAdapter 
class MyAdapter extends ArrayAdapter<String> 
{ 
    Context context; 
    int[] images; // getting the reference of images. 
    String[] titleArray; // getting the reference of titles array 
    String[] descriptionArray; // getting the reference of description array 

    public MyAdapter(Context context, String[] titles, int[] img, String[] description) { 
     super(context, R.layout.single_row, R.id.textView, titles); 
     this.context = context; 
     this.images = img; 
     this.titleArray = titles; 
     this.descriptionArray = description; 
    } 


    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     // Let's get the reference of LayoutInflater to get the XML into Java code. 
     LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View row = inflater.inflate(R.layout.single_row, parent, false); 

     ImageView myImage = (ImageView) row.findViewById(R.id.imageView); 
     TextView myTitle = (TextView) row.findViewById(R.id.textView); 
     TextView myDescription = (TextView) row.findViewById(R.id.textView2); 


     myImage.setImageResource(images[position]); 

     myTitle.setText(titleArray[position]); 

     myDescription.setText(descriptionArray[position]); 



     return row; 
    } 
} 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<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" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.hacback17.listviewwithimagesadvanced.MainActivity"> 


    <ListView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/listView" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentStart="true" /> 
</RelativeLayout> 

single_row.xml

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

    <ImageView 
     android:src="@drawable/number_one" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/imageView" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentStart="true" 
     android:layout_margin="10dp" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="Large Text" 
     android:id="@+id/textView" 
     android:layout_alignTop="@+id/imageView" 
     android:layout_alignParentEnd="true" 
     android:layout_toEndOf="@+id/imageView" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:text="Small Text" 
     android:id="@+id/textView2" 
     android:layout_alignEnd="@+id/textView" 
     android:layout_alignStart="@+id/textView" 
     android:layout_below="@+id/textView" /> 

</RelativeLayout> 

Пользовательский интерфейс выглядит следующим образом: Please have a look at it

+1

Вы должны быть конкретными о том, что вам нужно. «Ницца» и «лучше» не являются конкретными. – ThomasW

+0

Не вопрос программирования ... – Rohan

+0

@ThomasW Я хочу сделать это хорошо. –

ответ

0

В ваших ArrayAdapter использование этих Funcitons:

myImage.setMaxWidth(MAX_WIDTH); 
myImage.setMaxHeight(MAX_HEIGHT); 

Используйте свои собственные значения в MAX_WIDTH & MAX_HEIGHT.

+0

если он сработает для вас, пожалуйста, голосуйте за мой ответ. – Saini

+0

Я сделал ... но он не появляется. –

+0

хорошо, я понимаю, что у вас недостаточно очков репутации для этой привилегии. – Saini

0

сделать вас r layout layout widht и height wrap_content до 30dp.

<ImageView 
     android:src="@drawable/number_one" 
     android:layout_width="30dp" 
     android:layout_height="30dp" 
     android:id="@+id/imageView" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentStart="true" 
     android:layout_margin="10dp" /> 
+0

Спасибо за помощь. Это был более простой вопрос, но я не знаю, что я не мог думать об этом раньше. –

+0

да .. а также извещение ответ saini .. это также хороший ответ, если вы хотите установить высоту и ширину, используя класс java .. –

+0

Привет, Сагар, я не знаю, почему сайт остановил меня, задавая вопросы, возможно, я спросил некоторые вопросы низкого качества. Но, на мой взгляд, вопросы - это вопросы, которые могут быть небольшими или большими. Не могли бы вы помочь мне в кодировании, так как кажется, что у вас хорошие знания в Android? И я также заметил из вашего профиля, что вы хотите поделиться своими знаниями с другими. С нетерпением ждем от вас в ближайшее время. –

Смежные вопросы